WP: Mitsubishi Ecodan PUHZ-SHW112YAA, ERSC-VM2C, Procon ┃ PV: 4800Wp, SolarEdge SE5K, 15x JAM60S17/320, ZW 15º ┃ WTW: Zehnder Q600 ┃ SH: Home Assistant, Proxmox, Intel NUC 8i5 Mini

Aangesloten zoals ^, maar Arduino IDE krijgt geen verbinding, al zie ik tijdens het connecting de blauwe LED wel knipperen, maar verder niets. Eindigt met "A fatal esptool.py error occurred: Failed to connect to ESP8266: Timed out waiting for packet header"
GPIO0 hangt uiteraard aan de ground tijdens het flashen.
After the first glass you see things as you wish they were. After the second you see things as they are not. Finally you see things as they really are, and that is the most horrible thing in the world...
Oscar Wilde
After the first glass you see things as you wish they were. After the second you see things as they are not. Finally you see things as they really are, and that is the most horrible thing in the world...
Oscar Wilde
En Rx en Tx zitten goed? Eventueel keer omdraaien voor als de labels toch voor de counter part bleken.
En als het op een breadboard is, alle verbindingen triple checken.
uiteraard AMS1117 eraan voor 3.3V.Originally, the cable was designed to have 3.3V VCC, however something was lost in translation between SparkFun and our supplier and we got stuck with a whole bunch of FTDI cables that have a slight mix up in wiring. These have 5V VCC, and 3.3V I/O. The 5V Vcc output shouldn't be a problem unless this cable is being used to power a sensitive circuit such as a sensor.
Rx/Tx meerdere keren gechecked en als ik ze omdraai (verkeerd plaats) dan licht de blauwe LED niet op bij activiteit.
Inderdaad breadboard, alles gecheckt. Enige wat ik nog kan doen is een andere ESP-201 (heb er 2) erop drukken, alleen moet ik bij die de niet-breadboard vriendelijke UART-header eraf solderen en vervangen door een ge-angled versie. Die zit namelijk dezelfde richting op gesoldeerd als de headers aan de zijkanten
edit: Net ff 5V ergens anders weggehaald, voor het geval de FTDI-kabel niet genoeg kan leveren, maakte geen verschil.
[ Voor 5% gewijzigd door Raven op 05-10-2024 17:25 ]
After the first glass you see things as you wish they were. After the second you see things as they are not. Finally you see things as they really are, and that is the most horrible thing in the world...
Oscar Wilde
Loopback test van de kabel lukt wel gewoon?
After the first glass you see things as you wish they were. After the second you see things as they are not. Finally you see things as they really are, and that is the most horrible thing in the world...
Oscar Wilde
After the first glass you see things as you wish they were. After the second you see things as they are not. Finally you see things as they really are, and that is the most horrible thing in the world...
Oscar Wilde
:strip_exif()/f/image/26v9U2ja4o6GFipzcYNnst9o.jpg?f=fotoalbum_large)
Debugging not supported ...
Jammer want ik had graag wat register waardes in de codeflow willen zien bij een Arduino Assembly programma.
In Micro Chip Studio 7 blijkt dit wel mogelijk te zijn, na het maken van een New Project, via het veldje Arduino Projects.
Dit is me alleen gelukt met de oudere Arduino IDE-versie 1.8.19, met de meest recente versie 2.3.4 loopt het spaak (?)
Mogelijke oorzaak daarvan staat hier :
https://forum.microchip.c...5C3l000000MfQzEAK/t388636
Onderste post, verouderde zooi
Voor wie het ook wil proberen, of tips heeft over de gevolgde methode, kijk deze twee videos, die onderdeel zijn van playlists :
YouTube: Assembly via Arduino (part 1) - Introduction
YouTube: #56 Programming the Arduino Uno Using Atmel Studio 7
De tweede video is nodig om de Uno via Usb vanuit MCS7 te programmeren/uploaden.
Het assembly gedeelte heb ik handmatig kunnen toevoegen, dat betreft de eerste video.
Rechtsklik op het bestand en Add File (bij de rode pijl) :
:strip_exif()/f/image/9lhMUtC9Y2DlQojDxxpxbpwT.jpg?f=fotoalbum_large)
Resultaat is dat een Arduino sketch in assembly geschreven kan worden en met MCS7 gedebugged en opgeladen kan worden op een bordje. Of in een simulator, zie mijn post in EL-kroeg.
:no_upscale():strip_icc():strip_exif()/f/image/FoTjaGX8bCQIkv0WN7VWKIxj.jpg?f=user_large)
YouTube: Assembly via Arduino (part 1) - Introduction
YouTube: Assembly via Arduino (part 5) - Programming LCD
Kuzechie legt uit dat de ino.file en de s.file dezelfde naam moeten hebben in de Arduino IDE.
In Proteus moet de main-file main.ino blijven heten.
:strip_exif()/f/image/UuYs6HTretvY5etpbflsvL1h.jpg?f=fotoalbum_large)
:strip_exif()/f/image/vk5S48hZAMTm6cbjbBC2P35o.jpg?f=fotoalbum_large)
:strip_exif()/f/image/vpYwjMygMF8M33kIoSiNdkzb.jpg?f=fotoalbum_large)
:no_upscale():strip_icc():strip_exif()/f/image/xkEqe2nSTM9ZrHHbBsrXKgI8.jpg?f=user_large)
Het is voor mij geen eitje gebleken om dit draaiend te krijgen met al die paths en project wizzards en dit is dan ook geen Instructable maar meer een globale wegwijzer naar de mogelijkheden.
============================= EDIT ================================
Hoewel het bovenstaande wel werkt met getoond LCD programma van Kuzechie lukt dat niet met een aantal anderen uit diezelfde serie.
Dat is op te lossen met op de gewone manier in Arduino IDE 2 de Kuzechie sketch te compilen en op te slaan, de Arduino IDE af te sluiten en dan vanuit Proteus die opgeslagen sketches handmatig met 'Add Existing File' toe te voegen en die nu dus wel dezelfde namen hebben.
:strip_exif()/f/image/V0TAtneJjpS67c48TZLDzd4z.jpg?f=fotoalbum_large)
En dit wordt dan de Proteus Wizard instelling :
[ Voor 32% gewijzigd door kitao op 20-12-2024 01:18 . Reden: Voortschrijdend inzicht ]
Correctie : Inmiddels lukt het wel om Arduino IDE 2.3.4 op MCS7 te laten draaien.kitao schreef op zondag 15 december 2024 @ 14:14:
[Afbeelding]
Debugging not supported ...![]()
Jammer want ik had graag wat register waardes in de codeflow willen zien bij een Arduino Assembly programma.
In Micro Chip Studio 7 blijkt dit wel mogelijk te zijn, na het maken van een New Project, via het veldje Arduino Projects.
Dit is me alleen gelukt met de oudere Arduino IDE-versie 1.8.19, met de meest recente versie 2.3.4 loopt het spaak (?)
Mogelijke oorzaak daarvan staat hier :
https://forum.microchip.c...5C3l000000MfQzEAK/t388636
Onderste post, verouderde zooi
Post wijzigen ging niet meer en ik wil geen software benadelen met bevindingen die achteraf niet helemaal kloppen, ook al weet ik niet waarom het nu wel werkt.
De Arduino sketchsjes met assembly zijn over te zetten naar zowel Proteus als naar MCS7.
Van die twee vind ik Proteus het fijnst om mee te oefenen.
Bij MCS7 kon ik niet uit een loop komen waarin Input werd gevraagd - van buitenaf, bijvoorbeeld een externe spanning op de ADC pinnen van de Arduino.
Step Out bleek niet te lukken bij MCS7 en bij Proteus wel.
Sowieso gaat daar het veranderen van input waardes makkelijker hoewel ik niet beweer dat dat bij MCS7 niet kan maar ik vermoed dat je dan een MCU erop aangesloten moet hebben met een MicroChip programmer ofzo. Of een speciaal bestandje :
Stimulus is the simulation of hardware signals/data into the device.
https://onlinedocs.microc...33-AC8D-4348B11BB2DB.html
Hieronder een voorbeeldje van een loop waar ik met Proteus wel kan Step Outen.
:strip_exif()/f/image/EDggPdH5Y9Xz3uNNDzd5XqS9.jpg?f=fotoalbum_large)
Dus al met al is mijn projectje om Arduino met assembly code, oftewel AVR Assembly, op zowel MCS7 als Proteus te debuggen en te simuleren best aardig gelukt
https://ww1.microchip.com...et-Manual-DS40002198A.pdf
Correctie 2 :
Register waarden kunnen eenvoudig handmatig gewijzigd worden. Dus een externe Stimulus is (in dit geval) niet nodig.
Het gaat bijvoorbeeld om onderstaande loop waar een ADCSAR-flag getest wordt of die op 1 staat.
Die blijkt handmatig ingevoerd te kunnen worden :
[ Voor 13% gewijzigd door kitao op 24-12-2024 15:31 . Reden: Voortschrijdend inzicht ]
Correctie 3 :kitao schreef op zondag 15 december 2024 @ 14:14:
[Afbeelding]
Debugging not supported ...![]()
Jammer want ik had graag wat register waardes in de codeflow willen zien bij een Arduino Assembly programma.
Het blijkt dus wel mogelijk te zijn om te debuggen in IDE2 als je maar het juiste boardje aansluit. Genoemd wordt bijvoorbeeld de Zero met onboard debug chip.
https://docs.arduino.cc/s...utorials/ide-v2-debugger/
Waar vind ik orginele?
After the first glass you see things as you wish they were. After the second you see things as they are not. Finally you see things as they really are, and that is the most horrible thing in the world...
Oscar Wilde
Kiwi electronics is mijn go-to voor dit soort spul. Tinytronics ook voor andere boards.Danielson schreef op dinsdag 14 januari 2025 @ 08:44:
Waren kopen jullie je Arduino Nano's? Ik bestel ze over het algemeen op AliExpress of Amazon, maar dit zijn allemaal "Fake CH340" chips.
Waar vind ik orginele?
Kia E-Niro 2019 Executiveline. OTGW/HA Enthousiasteling.
Naar mijn idee bestaat er niet zoiets als "fake CH340" chips... Dat is namelijk al gewoon een goedkoop China design. Afgezien van mensen die misschien geen drivers installeren er nooit een issue mee gezien. En geef zelf dus juist de voorkeur aan de CH340 boven FTDI of Silicon Labs chips omdat daar juist wel veel fakes voor in omloop zijn. (Die overigens in de basis prima werken maar door de driver kreupel gemaakt wordenDanielson schreef op dinsdag 14 januari 2025 @ 08:44:
Waren kopen jullie je Arduino Nano's? Ik bestel ze over het algemeen op AliExpress of Amazon, maar dit zijn allemaal "Fake CH340" chips.
Waar vind ik orginele?
De 32u4 vindt ik ook wel leuk, juist omdat deze geen afzonderlijke usb-serial chip nodig heeft.
Alhoewel, tegenwoordig gebruik ik toch voornamelijk ESP32 gebaseerde bordjes.
The Micro is a microcontroller board based on the ATmega32U4 (datasheet), developed in conjunction with Adafruit. It has 20 digital input/output pins (of which 7 can be used as PWM outputs and 12 as analog inputs), a 16 MHz crystal oscillator, a micro USB connection, an ICSP header, and a reset button. It contains everything needed to support the microcontroller; simply connect it to a computer with a micro USB cable to get started. It has a form factor that enables it to be easily placed on a breadboard.
The Micro board is similar to the Arduino Leonardo in that the ATmega32U4 has built-in USB communication, eliminating the need for a secondary processor. This allows the Micro to appear to a connected computer as a mouse and keyboard, in addition to a virtual (CDC) serial / COM port.
https://store.arduino.cc/en-nl/products/arduino-micro
:strip_exif()/f/image/UvZotiHG32Q2OwlhRub4Veds.jpg?f=fotoalbum_large)
In het midden een Avr Isp bootloader shield.
https://www.bitsandparts....ISP%20Shield%20Manual.pdf
https://github.com/RalphBacon/Bootloader-Shield-8MHz
Om een bootloader up te loaden zet je het shield op de Uno en dan kan er een bootloader in de zif-chip worden geprogrammeerd. Toen ik het shield bestelde dacht en hoopte ik eigenlijk dat ik zo ook andere 'normale' sketches kon uploaden in de 328P zif-chip. Dat blijkt niet te gaan want in de ISP-blokjes, die in elkaar klikken, zitten dan de Reset aan Reset vast, oftewel PC6 van de programmeerder Uno zit dan verbonden met de PC6 van de ontvanger.
:strip_exif()/f/image/4vxZLEOHzjg2anhSmk8bdG2y.png?f=user_large)
https://www.diymore.cc/pr...rammer-for-arduino-uno-r3
Vandaar dat ik het blauwe draadje met pin 10, SS, op de Uno heb verbonden.
Dan blijkt het wel mogelijk een sketch in de Zif-chip te flashen, dit is een paar keer getest met blink-variaties na verplaatsing van de aldus geprogrammeerde chip naar het breadboard ernaast.
Wat ik mij nu afvraag is hoe het kan dat er wel met ingeklikte shield een bootloader in de ontvangende chip kan worden geschoten maar niet op dezelfde manier een andere sketch ?
Want, zo heb ik begrepen, een bootloader 'is ook maar een sketch net als iedere andere' en komt in hetzelfde geheugenblok terecht net als iedere andere sketch.
Paar andere linkjes die in relatie staan tot dit onderwerp :
YouTube: #119 Bootloader Shield 🛡️ and 8Mhz Arduino Barebones (made easy)
https://docs.arduino.cc/b...-isp/ArduinoToBreadboard/
kitao in "De EL-kroeg - Deel 4"
:strip_exif()/f/image/S475Qo5exmvUxu51SKbTYo9s.jpg?f=fotoalbum_large)
======================== Edit ==================================
Na verder rommelen met dit ding en iets strikter navolgen van de handleiding blijkt het toch mogelijk te zijn om met ingeklikt shield een normale sketch in de zif 328P chip te schieten.
Dit is de handleiding
https://github.com/RalphBacon/Bootloader-Shield-8MHz
en er staat in 5.1 om een folder in Examples te plaatsen maar je kunt net zo goed deze Ino-file
https://github.com/RalphB.../master/OPENSMART_ISP.ino
in een lege sketch plakken en dan volgens de handleiding naar de Uno uploaden met MKII programmer geselecteerd.
Eenmaal geupload via Tools de Programmer terugzetten naar Arduino as ISP, zie handleiding 5.2 stap 4, en in plaats van 'burn bootloader' kun je in die stap en met 'Upload using Programmer' een normale sketch erin schieten, bijvoorbeeld een Blink.
Inmiddels ook erachter gekomen dat met ingeklikt shield de bootloader die erin zit uitgelezen kan worden mbv de Board_Detector sketch en via de Serial Port Monitor op 115200 baud.
Waarover hier meer :
kitao in "De EL-kroeg - Deel 4"
[ Voor 24% gewijzigd door kitao op 05-02-2025 18:01 . Reden: Github link toegevoegd ]
Daar gaat deze post in het kort over, voor wie er nog niet zo bekend mee is. Heb het zelf jaren niet gebruikt en het moest op een andere computer geinstalleerd worden met Windows 11 en ik heb van de stappen een paar snips gemaakt.
Produkt
:no_upscale():strip_icc():strip_exif()/f/image/aV3olzrUfdYZpv9529AHFwbW.jpg?f=user_large)
Website voor de software
:strip_exif()/f/image/O0vR4NIUQWOdwxHBP9UsowKk.jpg?f=fotoalbum_large)
:strip_exif()/f/image/PMalY72fazrOo9OZ8JNxeE9v.jpg?f=fotoalbum_large)
https://www.saleae.com/pages/downloads
Wizzard
:no_upscale():strip_icc():strip_exif()/f/image/02abpUXQV9JcRtINk51VmboK.jpg?f=user_large)
Geinstalleerd en in actie - het betreft overigens wel een demo versie, dus metingen opslaan zal wel niet gaan.
:strip_exif()/f/image/ibEYgkPTxncZgDvAkhhS1lcB.jpg?f=fotoalbum_large)
Dit apparaatje kost ca. 14 euro, o.a. bij Bol en is handig bij het monitoren van digitale schakelingen.
Voor die prijs zijn het gekloonden, ook die ik heb, maar de officiele software van Saleae is er blijkbaar toch compatible mee. Hetgeen mij niet heel vanzelfsprekend lijkt en zover ik gezien heb niet aangegeven staat bij de verkoop informatie.
[ Voor 7% gewijzigd door kitao op 08-02-2025 18:36 ]
Hier kunnen pakketten worden geselecteerd
https://www.labcenter.com/buy-vsm/
Er zit een gratis demo pakket bij maar ik zou eerst proberen of er daar een uno mee geblinkt kan worden.
Op basis van deze video
YouTube: Assembly via Arduino - Programming DS1307 RTC
met deze code
https://akuzechie.blogspo...a-arduino-ds1307-rtc.html
een RTC Max7219 geprobeerd op te bouwen maar dat werkte niet goed met het aangetaste printje wat ik nog ergens had liggen
:strip_exif()/f/image/OU9U69prLiWCqbL4rmr97mcU.jpg?f=fotoalbum_large)
In zulke gevallen of als ik een onderdeel mis komt een simulator van pas.
Simulide is wel gratis en vind ik persoonlijk zelfs leuker als Proteus
https://simulide.com/p/
maar is beperkter met de beschikbare onderdelen.
Toch kan je daar best veel mee, het heeft ook een RTC en een Max7219 maar die is gekoppeld aan een matrix
:strip_exif()/f/image/53q67ZBHBJPXDhfuwrQ5fnvC.jpg?f=fotoalbum_large)
Op Proteus lukte het uiteindelijk om de sketch, dat overigens in assembly is geschreven, in beeld te krijgen, met een common cathode display.
:strip_exif()/f/image/KA0rvEuiFrhYplQEZQAzP9pq.jpg?f=fotoalbum_large)
Het is wel een stuk lastiger om de project instellingen, libraries, compiler paths, files toevoegen etc om die bij Proteus goed te krijgen maar uiteindelijk is er wel meer mee mogelijk als met Simulide.
Ps, zie svp
kitao in "arduino uren en minuten verstellen"
De Sda en Scl 10K weerstanden zouden pull ups moeten zijn.
.
[ Voor 3% gewijzigd door kitao op 23-02-2025 16:24 ]
https://arduinogetstarted.com/tutorials/arduino-rfid-nfc
Dat is een goed artikel en introduceert ook Logic Level Shifters maar ik wou dit overzetten naar een Atm32.
Om die te programmeren gebruik ik Atmel Studio en de zoekcombinatie Atm32 + RC522 leverde dit op:
https://medium.com/@riyay...rocontroller-31c32df78861
Dat verwijst naar diverse goeie sites maar ook naar Git waar het hele project is gecodeerd
https://github.com/Riya00...-Using-Atmega32/tree/main
Klik de groene <>Code knop en download de Zip.
Dan vanuit Atmel Studio in Solution Explorer klik op Add Existing Items
:no_upscale():strip_icc():strip_exif()/f/image/kIMVGl3WU8l31TphEZR9iSWW.jpg?f=user_large)
En voeg de 4 files die Zip- gedownload waren toe
:no_upscale():strip_icc():strip_exif()/f/image/tJmxdg3CgAokYU842NgH8elt.jpg?f=user_large)
Dit compileerde in 1 keer maar helaas de Rfid opstelling werkte niet
In main.c staat het volgende :
1
2
3
4
5
| [i]int main() { DDRB |= (1<<rs)|(1<<en)|(1<<buzzer); DDRC &= ~((1<<pin0)|(1<<pin1)|(1<<pin2)|(1<<pin3)); PORTB |= (1<<buzzer);[/i] |
Verander de DDRC in :
DDRC |= (1<<pin0)|(1<<pin1)|(1<<pin2)|(1<<pin3);
DDRC staat voor Data Direction Register C en met het &= ~( wordt daar een Input van gemaakt hetgeen naar mijn idee niet klopt als je vanuit Port C een LCD van data wil voorzien.
:strip_exif()/f/image/kp1KeI1trvlbpayGXxHfZ4Ky.jpg?f=fotoalbum_large)
https://microcontrollersl...facing-examples-features/
Verbindingen:
RC522 : Vcc op 3.3V , TX naar RX ATM32, RX naar TX Atm32.
Atm32 : PB0 naar RS LCD, PB1 naar EN LCD, PC7-4 naar D7-4 LCD, PB2 aan een Buzzer of Ledje, Kristal 8MHz.
LCD : RW aan GND leggen.
:strip_exif()/f/image/mxbt4tNOj0HZ3BrbCJSx5cfa.jpg?f=fotoalbum_large)
:strip_exif()/f/image/WjCEiYWZKxDvjvABlJrpY8lJ.jpg?f=fotoalbum_large)
Dit is allemaal best omslachtig want hetzelfde kan veel makkelijker en sneller worden bereikt met de Arduino IDE en bijvoorbeeld een Uno of Nano. Het op deze manier programmeren geeft wel iets meer uitdaging en is net een een graadje lastiger als de standaard methode.
De Arduino IDE heb ik in het begin gebruikt voor het testen van de componenten maar het voordeel van Atmel/Microchip Studio is dat het meer mogelijkheden tot debuggen biedt.
[ Voor 7% gewijzigd door kitao op 13-04-2025 18:17 ]
Ik gebruik de Uno o.a. om signalen naar een Altera Max II te sturen maar die draait op 3.3V. De gebruikte signalen zijn voor een 3x8-decoder volgens deze webpagina:
https://www.engineersgara...d-8x3-encoder-using-vhdl/
Gecompileerd in Quartus verscheen na wat instellingen dit plaatje op Modelsim:
:strip_exif()/f/image/8pcNvtkjD53c5kajjWjlap4Z.jpg?f=fotoalbum_large)
De sim werkt dus naar behoren en de volgende stap was om dit op breadboard te zetten met in de Uno een aangepaste versie van dit programma : https://projecthub.arduin...led-binary-counter-defdd9
:strip_exif()/f/image/WtTTfU6ecXAfJ9ruiB0iTEoI.jpg?f=fotoalbum_large)
Op de foto is het goed aangesloten maar dat was eerst niet zo, ik had namelijk totaal niet verwacht dat er onder en boven VCC en GND op de level-shifter zouden zitten dus had VCC rechtstreeks op pin 3 staan
:no_upscale():strip_icc():strip_exif()/f/image/TFapQFKi54qhTksttZEqwM2K.jpg?f=user_large)
Iemand enig idee waarom dit dubbel is uitgevoerd ?
Met dit soort bordjes wordt op de cent winst gemaakt dus lijkt mij nogal overbodig?
En is er een manier om in de getoonde opstelling de level shifter er tussen uit te halen ? Dat er rechtstreeks 3.3 V uit de gebruikte pinnen van de Uno komt ?
Ps, deze is ook handig voor dit soort dingen
:strip_exif()/f/image/dAOBzRp5mP4NPb32UGwKqJv3.jpg?f=fotoalbum_large)
.
Ps2, als mogelijk antwoord op mijn eigen vraag, de dubbele uitvoering van VCC en GND is waarschijnlijk om twee of meerdere Logic Level Shifter Bi-Directional 5V/3.3V Modules te 'daisy chainen', aan elkaar door te lussen.
.
[ Voor 13% gewijzigd door kitao op 18-06-2025 10:27 ]
Denk voor gemak voor daisy chain inderdaad. Want hoe zeer ze ook proberen te bespraken is de grootste besparing vaak dat ze het niet zelf bedacht hebbenkitao schreef op woensdag 18 juni 2025 @ 07:28:
Iemand enig idee waarom dit dubbel is uitgevoerd ?
Met dit soort bordjes wordt op de cent winst gemaakt dus lijkt mij nogal overbodig?
Direct, nee. Simpele spanningsdeler zou ook voldoen.En is er een manier om in de getoonde opstelling de level shifter er tussen uit te halen ? Dat er rechtstreeks 3.3 V uit de gebruikte pinnen van de Uno komt ?
Ja bedankt voor de tip van een spanningsdeler, zoiets als dit denk ik dan aan
:no_upscale():strip_exif()/f/image/qnN4y3W0Xpofuna8Lu1LPRID.webp?f=user_large)
https://arduinokitproject...uetooth-arduino-tutorial/
Kort na mijn vorige post in dit topic over een Uno gekoppeld aan een CPLD kwam ik toevallig iets soortgelijks tegen, zie
kitao in "Het grote 'breadbord computer' topic"
/f/image/MKNDTAqQ5M4IPZGQYMgab500.png?f=fotoalbum_large)
https://eecs.blog/8-bit-computer-in-an-fpga/#more-detail
en daar staan 3 level shifters op met iets van 24 x 2 lijnen totaal
Op zich is dat al een zooitje maar met op iedere lijn een spanningsdeler met weerstanden zal nog meer een warboel worden vrees ik.
Niet dat ik al zeker weet dit project uit te gaan voeren maar een beginnetje is gemaakt en het kan ook per module opgezet worden waarschijnlijk. Nu schijnt het wel mogelijk te zijn om een Arduino Uno te 'hacken' dat er 3.3V uit de I/O komt, zie
https://learn.adafruit.co...echniques/3-3v-conversion
maar dat is nogal een drastische vrijwel onomkeerbare botte mes ingreep.
Toch heb ik het in een andere vorm geprobeerd en dat gaat inderdaad
:strip_exif()/f/image/eBFWmtHI0SSIOyTzRfJv5WkI.jpg?f=fotoalbum_large)
Atmega 328P stand-alone geprogrammeerd met Arduino IDE via een FTDI FT232RL USB en vervolgens op 3.3V labvoeding aangesloten waardoor er 3.3V Out op de Led-pin ontstaat.
En er zullen ook andere Arduino borden zijn die standaard op 3.3V draaien maar makkelijkste is als ik er vertrouwd mee ben en ook dat er in de gebruikte sketches niet van pin positie gewisseld hoeft te worden met dat project
https://github.com/EECSB/8Bit-Computer
en dan lijkt mij dit een geschikte kandidaat :
If you used Arduino Nano in your projects in the past, the Nano 33 BLE is a pin-equivalent substitute. Your code will still work, but remember, it operates at 3.3V.
https://store.arduino.cc/products/arduino-nano-33-ble
.
[ Voor 5% gewijzigd door kitao op 23-06-2025 05:35 . Reden: typo ]
Ja, tnx, dat is inderdaad iets om rekening mee te houden
:strip_exif()/f/image/9RVmtH16LXjqVg7eLD1MTgjR.jpg?f=fotoalbum_large)
https://ww1.microchip.com...-ATmega328P_Datasheet.pdf
en iets scherper kijkend zie ik nu dat genoemde 3.3 V Nano helemaal geen Atmega Nano is
The Arduino Nano 33 BLE is based on the nRF52840 microcontroller
https://store.arduino.cc/products/arduino-nano-33-ble
Ik heb een klein hobbyproject in gedachten. Ben over het algemeen niet zo bezig met elektronica, programmeren en zo, maar wat ik graag zou willen:
- Functie: IR-commando ontvangen van een Logitech Harmony remote en dan een Wake-on-Lan via ethernet het netwerk opsturen.
- Het nog-te-maken device staat 24/7 aan, liefst dus low-power, zero-maintenance.
- Moet een ethernet-aansluiting hebben (duh...) en, om adapter uit te sparen, Power-over-Ethernet gevoed zijn. Natuurlijk kan het functioneel ook prima draadloos werken, maar ik wil dingen bij voorkeur bedraad.
- Op de een of andere manier dus een IR-ontvanger hebben.
Echter: dit bord blijkt End-of-Life, dus zal lastig aan te komen zijn. Wat zijn dan mijn alternatieven?
Arduino Uno + Arduino Ethernet Shield 2 + Ag9000-S PoE module?
Of zijn er beter, desnoods niet-Arduino, keuzes te maken?
Edit, dat laatste is niet zo'n issue bij het ethernet shield. Maar wel bij de shield met ENC... Chippies er op.
Anyway, voor de prijs van een shield heb je een ESP bordje wat alles al aan boord heeft, behalve de IR ontvanger dan
[ Voor 29% gewijzigd door _ferry_ op 13-12-2025 20:28 ]
https://www.olimex.com/Pr...-ISO/open-source-hardware_ferry_ schreef op zaterdag 13 december 2025 @ 20:07:
De Arduino code kun je doorgaans ook op een ESP32 draaien, en er zijn wel wat bordjes met een ESP+LAN+PoE te vinden denk ik zo,
After the first glass you see things as you wish they were. After the second you see things as they are not. Finally you see things as they really are, and that is the most horrible thing in the world...
Oscar Wilde
Precies, of evt deze;
https://www.olimex.com/Pr...POE2/open-source-hardware
Of van een andere fabrikant;
https://www.tinytronics.n...s3-w5500-ethernet-met-poe
[ Voor 12% gewijzigd door _ferry_ op 14-12-2025 09:58 ]
In stappen opdelen is waarschijnlijk het meest effectief, te beginnen bij de IR-detectie. In het verleden eens in verdiept en toevallig vandaag een stukje ervan weer opgepakt, zie Hfdst.7 pag. 81vanaalten schreef op zaterdag 13 december 2025 @ 15:31:
OK, misschien ben ik hier helemaal verkeerd, maar je moet toch ergens beginnen:
Ik heb een klein hobbyproject in gedachten. Ben over het algemeen niet zo bezig met elektronica, programmeren en zo, maar wat ik graag zou willen:Na wat google, rondzoeken enzo kwam ik uit op een Arduino Leonardo ETH2 met PoE. Ik ben wel gecharmeerd van Arduino als concept, heb ik een heeeeel ver verleden wel eens iets met Arduino gedaan dus dit leek mij wel een goede basis.
- Functie: IR-commando ontvangen van een Logitech Harmony remote en dan een Wake-on-Lan via ethernet het netwerk opsturen.
- Het nog-te-maken device staat 24/7 aan, liefst dus low-power, zero-maintenance.
- Moet een ethernet-aansluiting hebben (duh...) en, om adapter uit te sparen, Power-over-Ethernet gevoed zijn. Natuurlijk kan het functioneel ook prima draadloos werken, maar ik wil dingen bij voorkeur bedraad.
- Op de een of andere manier dus een IR-ontvanger hebben.
Echter: dit bord blijkt End-of-Life, dus zal lastig aan te komen zijn. Wat zijn dan mijn alternatieven?
Arduino Uno + Arduino Ethernet Shield 2 + Ag9000-S PoE module?
Of zijn er beter, desnoods niet-Arduino, keuzes te maken?
https://www.digikey.nl/ht...understanding-signals.pdf
Getoond wordt hoe een Sony IR-signaal gedetecteerd en ontcijferd kan worden. Welk protocol jouw afstandbediening gebruikt weet ik niet maar dat kan dus verschillen per fabrikant.
https://www.sbprojects.net/knowledge/ir/sirc.php
:no_upscale():strip_icc():strip_exif()/f/image/cRHCR6KAWTnjjiEy6TumMtDA.jpg?f=user_large)
.
Ik ging er eigenlijk van uit dat een willekeurig microprocessor bord (Arduino of wat dan ook) met een standaard IR-ontvanger-IC al goed genoeg gaat zijn, dus had mij daar nog niet zo in verdiept.kitao schreef op zondag 14 december 2025 @ 17:18:
[...]
In stappen opdelen is waarschijnlijk het meest effectief, te beginnen bij de IR-detectie. In het verleden eens in verdiept en toevallig vandaag een stukje ervan weer opgepakt, zie Hfdst.7 pag. 81
https://www.digikey.nl/ht...understanding-signals.pdf
Getoond wordt hoe een Sony IR-signaal gedetecteerd en ontcijferd kan worden. Welk protocol jouw afstandbediening gebruikt weet ik niet maar dat kan dus verschillen per fabrikant.
https://www.sbprojects.net/knowledge/ir/sirc.php
[Afbeelding]
.
Het gaat om een Logitech Harmony, dus in principe kan die van alles sturen. Maar dit stukje van de puzzel gaat denk ik wel het meeste tijd kosten.
Dank voor de link naar informatie!
Persoonlijk ben ik nog geen uC of board tegengekomen dat standaard is voorzien van een IR-optie, maar goed, ik wist ook nog niet dat er via de ethernetkabel spanning geleverd kon worden. Ik zag wel in de vorige links een bluetooth-optie en met een app op je telefoon heb je dan, afhankelijk van jouw toepassing en wensen, waarschijnlijk geen IR-afstandsbediening meer nodig. De webpagina hieronder heb ik een tijdje geleden nog gedaan, dat ging best goed en aan het eind ervan staan nog enkele doorverwijzingen.
https://arduinokitproject...uetooth-arduino-tutorial/
Inmiddels wat nazoek gedaan via de Copiloot en om PoE mogelijk te maken zou een speciale switch of injector nodig zijn? ESP tot nu toe nooit gebruikt maar mogelijke Arduino alternatieven zijn o.a.
https://wiki.dfrobot.com/...OE_Mainboard_SKU__DFR0342
https://www.seeedstudio.c...oard-with-PoE-p-4822.html
https://docs.arduino.cc/r...o-ethernet-rev3-with-poe/
https://github.com/SuperHouse/EtherUno
Inderdaad staat er retired bij de arduino-ethernet-rev3-with-poe maar die zullen waarschijnlijk via bijvoorbeeld een Ali nog steeds goed verkrijgbaar blijken te zijn. Hieronder de DFRobot optie.
:no_upscale():strip_icc():strip_exif()/f/image/gFnB4npNu2JhMgONMSVytdpX.jpg?f=user_large)
.
Ah, nee, zo modern ben ik niet.kitao schreef op maandag 15 december 2025 @ 07:49:
@vanaalten
Persoonlijk ben ik nog geen uC of board tegengekomen dat standaard is voorzien van een IR-optie, maar goed, ik wist ook nog niet dat er via de ethernetkabel spanning geleverd kon worden. Ik zag wel in de vorige links een bluetooth-optie en met een app op je telefoon heb je dan, afhankelijk van jouw toepassing en wensen, waarschijnlijk geen IR-afstandsbediening meer nodig. De webpagina hieronder heb ik een tijdje geleden nog gedaan, dat ging best goed en aan het eind ervan staan nog enkele doorverwijzingen.
https://arduinokitproject...uetooth-arduino-tutorial/
Een IR-afstandbediening blijft nodig: TV en receiver zijn beiden nog uit de vorige eeuw en spreken geen moderne draadloze protocollen. Los daarvan lijkt een enkele afstandbediening die alle apparaten kan bedienen mij handiger dan een telefoon-app.
Oh, bedenk mij net dat ik de hele use-case van m'n project niet heb uitgelegd, want leek mij niet zo noodzakelijk:
Ik heb onlangs een mediaspeler-PC in elkaar gezet om een Intel NUC mediaspeler te vervangen. Echter: de NUC kan je via infrarood aanzetten, dus daadwerkelijk vanuit de uit-stand aan. De nieuwe mediaspeler kan dat helaas niet. Bios opties geprobeerd, maar nee: uit is uit en dan moet je met de aan-knop op het apparaat 'm aan zetten. En ik kan wel sleep-mode als alternatief gebruiken, maar dat vind ik een beun-oplossing en niet leuk. Dus idee is om een Arduino - of, nu waarschijnlijker, een ESP32 - te gebruiken die een specifiek IR-commando omzet naar een wake-on-lan via ethernet en op die manier de mediaspeler aan zet.
Check: mijn Unifi switches hebben een aantal poorten met PoE, dus die gebruik ik al om een paar apparaten via ethernet te voeden.Inmiddels wat nazoek gedaan via de Copiloot en om PoE mogelijk te maken zou een speciale switch of injector nodig zijn?
Zie bijv. https://docs.arduino.cc/libraries/irremote/
Heb ze ooit gebruikt, en daarmee stuurde ik dan een uitgang van de mircrocontroller waarmee ik de powerknop verbond. Zo kon ik ook met de IR remote de PC aanzetten. Zonder LAN (voeden via de USB bijvoorbeeld) en een stuk minder hardware.
[ Voor 12% gewijzigd door _ferry_ op 15-12-2025 09:42 ]
en deze video: YouTube: Arduino UNO + 7-Segment LCD Display - Full Tutorial (How to use segm...
Voor wie interesse heeft in het aansturen van een Segmented Display.
De video verwijst naar een Github Ino sketch: https://github.com/upiir/arduino_7segment_lcd_display
De sketch is dus niet bedoeld voor een 7-segment display maar een Common Cathode 7-segment display op een breadboard kan er wel mee aangestuurd worden. De pin indeling voor een Uno is als volgt :
1
2
3
4
5
6
7
8
9
| pinMode(SEG_COM, OUTPUT); // set pin 2 as output pinMode(SEG_A, OUTPUT); // set pin 8 as output pinMode(SEG_B, OUTPUT); // set pin 9 as output pinMode(SEG_C, OUTPUT); // set pin 5 as output pinMode(SEG_D, OUTPUT); // set pin 4 as output pinMode(SEG_E, OUTPUT); // set pin 3 as output pinMode(SEG_F, OUTPUT); // set pin 7 as output pinMode(SEG_G, OUTPUT); // set pin 10 as output pinMode(SEG_DP, OUTPUT); // set pin 6 as output |
In het origineel kloppen de comments ernaast niet vandaar dat ik dit stukje code heb geplaatst. Voor de rest werkt de sketch prima en heb deze in Proteus met een Arduino Uno als microcontroller gesimuleerd. Alle Commons en alle Segments op 1 pinnetje gaat in het echt natuurlijk niet maar de simulatie accepteert het en het gehele display wordt zichtbaar:
:strip_exif()/f/image/gpFmSRZFgVNZlzQsTxCxH3Sx.jpg?f=fotoalbum_large)
Omdat een segmented display aangestuurd wordt met een AC-signaal maakt het volgens mij eigenlijk niet uit of je een CC of CA 7-segment display met diezelfde sketch aanstuurt. Op breadboard heb ik alleen de CC getest maar in een Simulide simulatie heb ik ze allebei erin gezet:
:strip_exif()/f/image/ql4IydQOcDoe9pyJlO63h20U.jpg?f=fotoalbum_large)
https://simulide.com/p/ Pin 2 heeft een periode van 20 ms en bij de CA had eigenlijk ook een weerstandsblokje moeten zitten.
Deze video van dezelfde autheur simuleert een transparant display met Wokwi, zie minuut 09:45
YouTube: Thank You for 100K - Here is Your Gift!
:strip_exif()/f/image/w47sf3ktG7ir3ShN6WUYS3Tl.jpg?f=fotoalbum_large)
https://wokwi.com/
.
[ Voor 26% gewijzigd door kitao op 20-12-2025 12:13 . Reden: Plaatje toegevoegd ]
Aangenomen dat je verwijst naar het stukje segment<>pin vertaling zie ik niet iets herhalends of overbodig - als gezegd: mits onderhouden.
En waardes van een variabele herhalen in je commentaar is naar mijn idee een doodzonde. Dan zou je net zo goed geen variabele kunnen gebruiken als je die toch gaat lopen herhalen. Goed commentaar hoef je dus ook niet aan te passen als je doel hetzelfde blijft maar je implementatie verandert.
Bedankt voor de tip, ik snap wat je bedoeltSeptillion schreef op zondag 21 december 2025 @ 10:15:
@kitao Als je dat soort herhalende commentaar naast je code zet kan je beter geen commentaar gebruiken. Beste commentaar herhaal je jezelf niet in. Ofwel, geen variabele waardes etc noemen. Als je nu je variabele wijzigt wordt je alleen maar op het verkeerde been gezet door je commentaar.
Zelf codeer ik niets maar probeer het wel enigzins te kunnen lezen en na deze sketch in Atmel Studio met een debug te hebben doorlopen wist ik zeker dat de code comments niet klopten.
Het volgende is uit het origineel:
https://github.com/upiir/...segmented_lcd_display.ino
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
| #define SEG_COM 2 #define SEG_A 8 #define SEG_B 9 #define SEG_C 5 #define SEG_D 4 #define SEG_E 3 #define SEG_F 7 #define SEG_G 10 #define SEG_DP 6 [...] void setup() { // set all the needed Arduino pins as outputs (7 pins for 7-segment display, 1 pin for decimal point, 1 pin for common electrode) pinMode(SEG_COM, OUTPUT); // set pin 2 as output pinMode(SEG_A, OUTPUT); // set pin 3 as output pinMode(SEG_B, OUTPUT); // set pin 4 as output pinMode(SEG_C, OUTPUT); // set pin 5 as output pinMode(SEG_D, OUTPUT); // set pin 6 as output pinMode(SEG_E, OUTPUT); // set pin 7 as output pinMode(SEG_F, OUTPUT); // set pin 8 as output pinMode(SEG_G, OUTPUT); // set pin 9 as output pinMode(SEG_DP, OUTPUT); // set pin 10 as output } |
Ik heb van het void setup blokje de comments aangepast mocht iemand van plan zijn dit projectje met een 7-segment led display te willen gaan uitvoeren zodat er geen pinnetjes geroosterd gaan worden bij iemand met minder ervaring ermee. In dat opzicht ben ik op het gebied van LCD-displays zelf een beginner dus moet daar ook mee oppassen wil ik zoiets gaan aansluiten. Momenteel heb ik geen los exemplaar dus vandaar dat ik het even met een 7-seg led op breadboard uittestte.
Ik heb inmiddels wel zo ongeveer begrepen dat zo'n LCD werkt als condensator component dus dan in principe zou mijn Proteus simulatie ook in het echt zo opgesteld kunnen worden?
Als ik een simulatie meting verricht gaat er nauwelijk stroom door de leiding heen. Of meet ik verkeerd?
:strip_exif()/f/image/yeteI8zmWB5yvSIjDj5ZAE2s.jpg?f=fotoalbum_large)
Het is dezelfde simulatie als in de vorige post met enkel een AC amperemeter erin gevoegd.
De periode van IO2 is 20 ms en de simulatie draait op diezelfde Github code van autheur Upir.
.
Je hebt gelijk. En ik zie in de .ino dat de pinnummers al in de #DEFINE gekoppeld zijn. Dan is het "risico" op miscommunicatie in een later stadium door niet aangepast commentaar een heel stuk groter.Septillion schreef op zondag 21 december 2025 @ 10:32:
@DjoeC Ik ben ook groot voorstander van commentaar. Maar als een regel code super duidelijk is hoeft die geen commentaar. Zeggen wat een regel doet is geen commentaar, je wilt uitleggen wat je wilt bereiken. Dus bijvoorbeeld "Pinnen voor 7-segment configureren".
En waardes van een variabele herhalen in je commentaar is naar mijn idee een doodzonde. Dan zou je net zo goed geen variabele kunnen gebruiken als je die toch gaat lopen herhalen. Goed commentaar hoef je dus ook niet aan te passen als je doel hetzelfde blijft maar je implementatie verandert.
Mits goed onderhouden is herhalend en goed gekozen commentaar erg nuttig, vooral voor gebruikers zoals ik die niet al te goed thuis zijn in het coderen. Maar zoals ik het begrepen heb is achteraf wijzigen van commentaar regels nogal een opgave als het IC's betreft met 80+ pinnen en vele honderden regels aan code in een programma. Op zich in deze besproken Ino-file hadden de comments beter meteen achter de Define's kunnen worden gezet want voor een niet-codeur is een regel zoals hieronder nogal vaag:DjoeC schreef op zondag 21 december 2025 @ 10:26:
@Septillion Ik ben een groot voorstander van uitgebreid commentaar ter plekke zolang dat de bedoeling van het statement blok weergeeft. Maar commentaar moet net zo goed worden bijgewerkt als de onderliggende code.
Aangenomen dat je verwijst naar het stukje segment<>pin vertaling zie ik niet iets herhalends of overbodig - als gezegd: mits onderhouden.
1
| #define SEG_A 8 |
Want wat is pin 8?
Op een Atmega 328 is dat niet dezelfde pin als op een Uno. Pin 8 is namelijk Gnd
Met Pin 8 op de Uno zou dan overzichtelijker PortB0 kunnen worden genoemd ofzo met als voordeel dat het ook makkelijker naar bijvoorbeeld een Nano kan worden overgezet.
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
| void readDS18B20()
{
// Get somewhat accurate time from router.
setup_UDP();
gettime_UDP();
// Start temp calculations on all sensors
sensors1.requestTemperatures();
sensors2.requestTemperatures();
// 1 second later all calculations should be complete
// @ highest (12 bit) resolution. 11 bit takes max 0.375 sec.
// But why rush.....
// delay(1000)
// Made 900 ms to keep 60 sec turnaround per reading
delay(850);
// For debugging purposes: Print # sensors per port which we
// identified earlier.
Serial.print("sensNum1 : ");
Serial.println(sensNum1, DEC);
Serial.print("sensNum2 : ");
Serial.println(sensNum2, DEC);
// Go get all temps per port
Serial.println("==>getTemp1<==");
for (i = 0; i < sensNum1; i++)
{
getTemp1(sensTab [i]);
processTemp();
}
// Careful: When using more than 2 ports this needs to be changed
// together with some other things....
Serial.println("==>getTemp2<==");
for (i = sensNum1; i < sensNumTot; i++)
{
getTemp2(sensTab [i]);
processTemp();
}
Serial.println("==>ReadyTemps<==");
} |
Code kwaliteit zal best iets op aan te merken zijn maar dit werkt voor mij om tientallen DS18B20 temperatuur sensoren in 1 keer uit te lezen
"Get somewhat accurate time from router."DjoeC schreef op zondag 21 december 2025 @ 23:19:
code:
1 2 3 4 5void readDS18B20() { // Get somewhat accurate time from router. setup_UDP(); gettime_UDP();
"gettime_UDP"
Dat soort commentaar heb ik een hekel aan.
Dat de 'getTime_UDP' tijd ophaalt via UDP heb ik niets aan.
Ik vraag mij af waarom je op dat punt tijd ophaalt, zeker gezien het niet naar een variabele geschreven wordt én daar verder niets mee gedaan wordt in dezelfde functie?
En daarnaast, wat is het verschil tussen getTemp1 en getTemp2?
Ik heb liever een block comment boven de functie die uitlegt wat de functie doet dan per regel.
Dat werkt ook beter met programma's die documentatie genereren.
Commentaar kan ook beter boven de regel staan dan ernaast, is makkelijker als je twee IDE windows naast elkaar hebt staan. Zo allemaal op een lijn proberen te krijgen is alleen maar onhandig als je een lijn toevoegt die weer langer is en je alles weer moet uitlijnen.
Dank je voor de toelichting en gezien het toch pittige commentaar van Accretion hieropDjoeC schreef op zondag 21 december 2025 @ 23:19:
@kitao Ik snap je doel en de problemen. Hier is een stukje uit 1 van mijn .ino's waar - naar mijn idee - commentaar zowel nuttig is maar niet compleet onderhouden (850 vertraging ipv 900 uit het commentaar) Ik ben ook absoluut geen Arduino programmeur (wel in andere talen):
code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37void readDS18B20() { // Get somewhat accurate time from router. setup_UDP(); gettime_UDP(); // Start temp calculations on all sensors sensors1.requestTemperatures(); sensors2.requestTemperatures(); // 1 second later all calculations should be complete // @ highest (12 bit) resolution. 11 bit takes max 0.375 sec. // But why rush..... // delay(1000) // Made 900 ms to keep 60 sec turnaround per reading delay(850); // For debugging purposes: Print # sensors per port which we // identified earlier. Serial.print("sensNum1 : "); Serial.println(sensNum1, DEC); Serial.print("sensNum2 : "); Serial.println(sensNum2, DEC); // Go get all temps per port Serial.println("==>getTemp1<=="); for (i = 0; i < sensNum1; i++) { getTemp1(sensTab [i]); processTemp(); } // Careful: When using more than 2 ports this needs to be changed // together with some other things.... Serial.println("==>getTemp2<=="); for (i = sensNum1; i < sensNumTot; i++) { getTemp2(sensTab [i]); processTemp(); } Serial.println("==>ReadyTemps<=="); }
Code kwaliteit zal best iets op aan te merken zijn maar dit werkt voor mij om tientallen DS18B20 temperatuur sensoren in 1 keer uit te lezen
De Github pagina waar ik naar verwees
https://github.com/upiir/arduino_7segment_lcd_display
is voor de beginnende derden categorie dus het onjuist pin nummeren in zijn commentaar regels was nogal slordig van autheur Upir, die overigens wel een recent en zeer rijk Youtube Arduino Uno Display kanaal heeft:
https://www.youtube.com/@upir_upir/videos
Ik heb zelf wel eens geprobeerd te programmeren met o.a. Basic, PBasic, Assembly, C, C++ en Arduino Ide* maar ik ben ermee gestopt vanwege gebrek aan aanleg ervoor en liep vast naarmate het moeilijker werd (story of my life)
* Arduino uses C++ — but with a custom framework and build system on top.
Tegenwoordig ben ik ook een beetje bezig met Cpld's en Fpga's en dan worden er weer andere programmeertalen gebruikt zoals Verilog en Vhdl dus het wordt sowieso toch al teveel om dat te gaan leren en blijft het bij copy/pasten en af en toe wat aanpassen van een paar regeltjes.
Overigens ging mijn vraagje niet zozeer over het coderen maar over het aansturen van een segmented LC-display zoals opnieuw afgebeeld in dit plaatje:
:strip_exif()/f/image/q1ELIOUzRAyDdYPCef44cTRU.jpg?f=fotoalbum_large)
klik
Alle 36 display pinnen zitten op 1 Uno pin, namelijk pin 2 oftwel PortD2 waarmee het gehele display in de simulatie zichtbaar wordt. Ik heb in diezelfde simulatie een AC amperemeter direkt na pin2 er tussen geplaatst, zie vorige post en die slaat nauwelijks uit dus nu vraag ik me af of deze opstelling ook in het echt zo zou werken?
Verstandig lijkt me dan wel om per keer 1 dipswitchje te activeren om eventueel een verhoogde aanloopstroom te voorkomen indien alle dipswitches geactiveerd zijn terwijl er spanning op wordt gezet. Kortom > opstarten met alle schakelaars op OFF.
Ik heb zo'n type LCD'tje besteld
:no_upscale():strip_icc():strip_exif()/f/image/tFE3UDFjgT4qwDUqYmcAVLbU.jpg?f=user_large)
40PIN TN Positive 4-Digits Segment LCD Panel White/Blue/Yellow Green Backlight Static Drive 5V Industrial Digital Display Screen
en dan probeer ik het met een stand alone Atmega328P chip die ik nog op breadboard heb staan met een amperemeter er tussen.
.
[ Voor 4% gewijzigd door kitao op 23-12-2025 04:08 . Reden: Plaatje toegevoegd ]
Ik gebruik vooral Global variabelen want dat werkt het beste voor mij. Dat je in de clip geen gebruik ziet zegt verder niets (nee, ik ga niet de hele .ino delen). Waarom daar? Ik haal die timestamp 1x op om in elke temperatuur observatie (loopje wat je niet ziet) aan de meting toe te voegen.Accretion schreef op maandag 22 december 2025 @ 07:14:
[...]
"Get somewhat accurate time from router."
"gettime_UDP"
Dat soort commentaar heb ik een hekel aan.
Dat de 'getTime_UDP' tijd ophaalt via UDP heb ik niets aan.
Ik vraag mij af waarom je op dat punt tijd ophaalt, zeker gezien het niet naar een variabele geschreven wordt én daar verder niets mee gedaan wordt in dezelfde functie?
En daarnaast, wat is het verschil tussen getTemp1 en getTemp2?
Ik heb liever een block comment boven de functie die uitlegt wat de functie doet dan per regel.
Dat werkt ook beter met programma's die documentatie genereren.
Commentaar kan ook beter boven de regel staan dan ernaast, is makkelijker als je twee IDE windows naast elkaar hebt staan. Zo allemaal op een lijn proberen te krijgen is alleen maar onhandig als je een lijn toevoegt die weer langer is en je alles weer moet uitlijnen.
getTemp1 & getTemp2 zijn 2 instanties van een one-wire netwerk op 2 verschillende pin's, eerder in de sketch gedocumenteerd. De functie als zodanig stuurt 1 commando naar het one-wire netwerk en zegt: Alle DS18B20 op dit netwerk luister: "Bepaal de temperatuur op dit moment". Die wordt in een loopje na de delay (850ms) per sensor uitgelezen. Voordeel: ipv elke sensor individueel laten rekenen met 1 sensor per 375ms bij 11 bits volgens commentaar elders in de INO:
1
2
3
4
| // Accuracy: 9 bit = 0.5 C, calc time = 93.75 ms
// 10 bit = 0.25 C, = 187.5 ms
// 11 bit = 0.125 C, = 375 ms
// 12 bit = 0.0625 C, = 750 ms |
wordt er nu in totaal 375ms gerekend. Dat scheelt bij de (maximaal) 60 sensoren in deze opzet 59*375ms. En dat maakt dat de ESP langer in deep-sleep gaat tussen metingen.
Enneh, programma's die zelf documentatie genereren houd ik dan weer niet van.... "In principe" dienen programma code zelf documenterend te zijn, als dat niet is heb je zut gemaakt. In mijn geval was dit mijn eerste Arduino poging na wat met examples (en dus ook met C (?) gekloot te hebben en had ik dus behoefte aan een beschrijving voor mijzelf:
1
2
3
4
5
6
7
8
9
10
11
| /* WeMos D1 mini V2 with multiple sensors
Version 2016-08-06
Control via MQTT, debug Serial
Hookup guide:
- connect D0 to RST in order to wake op from deep sleep
- DS18B20:
+ connect 5V (3.3V does not work properly with many sensors) to VDD pin of DS18B20
+ connect G(round) to GND pin of DS18B20
+ Connect DS18B20 DQ data pin to D4, D5, ...
*/ |
Kan het beter? Natuurlijk! Is mijn manier DE manier? Natuurlijk niet. Maar deze methode - zeker met mijn vorm van programmeren en als je door de hele .ino heen loopt werkt voor mij. Het is (wordt) geen open-source, het draait inmiddels 9 jaar met in die 9 jaar minimaal onderhoud en heeft inmiddels zo'n 250.000.000 metingen geleverd aan de tegenhanger, een Python programma op een Raspberry dat mbv Grafana (toen ook allemaal nieuw voor mij) de boel verder verwerkte naar database, acties, alerts.
OK, beetje afgedwaald want het ging om wat zinvol commentaar is of niet. Meningen daarover verschillen dus en dat mag. We zijn het er over eens dat commentaar niet letterlijke beschrijving moet zijn van het statement en zeker niet in herhalingen hoort te vallen. Commentaar moet bijdragen aan het begrip van wat waarom moet gebeuren en commentaar moet onderhouden worden. Voor mij blijft meespelen dat de code eigenlijk door de keuze van variabele namen (kort of lang) en de bijbehorende documentatie alsook de structuur van het proggie begrijpelijk wordt. Nogmaals, er is niet 1 correcte methode.
En om je een idee te geven hoe dat werkt, ik ben opgeleid met VSP, Volmac Structured Programming. De commentaren hieronder, waar over VSP gemijmerd wordt, geven iets meer insight en zegt vast ook iets over mijn leeftijd
Even afronding:vanaalten schreef op zaterdag 13 december 2025 @ 15:31:
OK, misschien ben ik hier helemaal verkeerd, maar je moet toch ergens beginnen:
Ik heb een klein hobbyproject in gedachten. Ben over het algemeen niet zo bezig met elektronica, programmeren en zo, maar wat ik graag zou willen:Na wat google, rondzoeken enzo kwam ik uit op een Arduino Leonardo ETH2 met PoE. Ik ben wel gecharmeerd van Arduino als concept, heb ik een heeeeel ver verleden wel eens iets met Arduino gedaan dus dit leek mij wel een goede basis.
- Functie: IR-commando ontvangen van een Logitech Harmony remote en dan een Wake-on-Lan via ethernet het netwerk opsturen.
- Het nog-te-maken device staat 24/7 aan, liefst dus low-power, zero-maintenance.
- Moet een ethernet-aansluiting hebben (duh...) en, om adapter uit te sparen, Power-over-Ethernet gevoed zijn. Natuurlijk kan het functioneel ook prima draadloos werken, maar ik wil dingen bij voorkeur bedraad.
- Op de een of andere manier dus een IR-ontvanger hebben.
Echter: dit bord blijkt End-of-Life, dus zal lastig aan te komen zijn. Wat zijn dan mijn alternatieven?
Arduino Uno + Arduino Ethernet Shield 2 + Ag9000-S PoE module?
Of zijn er beter, desnoods niet-Arduino, keuzes te maken?
De tip van @_ferry_ was een hele bruikbare, ik heb uiteindelijk een Olimex ESP32-POE2 aangeschaft - met als doorslaggevend argument dat de fabrikant ook een mooie passende behuizing (BOX-ESP32-POE2) verkoopt. Inclusief verzending was ik zo'n 55 euro kwijt.
Een bruikbare infraroodontvanger had ik nog liggen (Vishay TSOP32238), evenals wat flatcable en een connector voor de UEXT poort. Dus simpelweg die TSOP32238 aan pinnen 1, 2 en 3 van de UEXT connector verbinden en de hardware was klaar.
Software: dat was wat puzzelen. Infrarood ontvangen kon met IRremote library die best goed gedocumenteerd was. Maar voor mij was het dan puzzelen als beginner of die (*Arduino*-IRremote) bruikbaar was voor ESP32, twijfels over of de pinnummer het GPIO nummer of fysieke IC pinnummer moest zijn. Als je dan ook de serial debugger baudrate op 115200 hebt gezet, maar aan de ontvanger kant nog op 9600 staat, dan verloopt het debuggen wat moeizaam.
Anyway, de afstandbediening die ik gebruik (voor een FLIRC receiver) wordt niet direct als protocol herkent, maar met 'raw code' kan je 'm toch bruikbaar ontvangen. Dus dat gedeelte was goed oplosbaar.
Ethernet was ook wat puzzelen. Het verbinden en IP-adres krijgen stelde weinig voor, met dank aan de goede voorbeelden van de fabrikant. Hoe een UDP pakketje voor WOL te verzenden was vooral trial&error. De AsyncUDP library bleek uiteindelijk bruikbaar, maar qua documentatie vond ik het wat karig (moet je nou connecten voor je wat kan sturen? En moet je vervolgens writeTo, sendTo of broadcastTo gebruiken?). Met behulp van tcpdump/wireshark pakketjes monitoren en vergelijken met een 'echt' wake-on-lan commando hielp mij hier wel bij.
Ofwel, uiteindelijke code:
(en ja, er zal vast genoeg aan te verbeteren zijn - maar vooralsnog voldoet dit voor mij)code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96#ifndef ETH_PHY_TYPE #define ETH_PHY_TYPE ETH_PHY_LAN8720 #define ETH_PHY_ADDR 0 #define ETH_PHY_MDC 23 #define ETH_PHY_MDIO 18 #define ETH_PHY_POWER 12 #define ETH_CLK_MODE ETH_CLOCK_GPIO0_OUT #endif #include <ETH.h> #include <AsyncUDP.h> #include "PinDefinitionsAndMore.h" #include <IRremote.hpp> #define IR_RECEIVE_PIN 4 // GPIO4 #define WOL_PORT 9 #define WOL_MAC 0xA0AD9F162A1F static bool eth_connected = false; unsigned char MagicPacket[102]; AsyncUDP udp; void onEvent(arduino_event_id_t event) { switch (event) { case ARDUINO_EVENT_ETH_START: Serial.println("ETH Started"); // The hostname must be set after the interface is started, but needs // to be set before DHCP, so set it from the event handler thread. ETH.setHostname("esp32-ethernet"); break; case ARDUINO_EVENT_ETH_CONNECTED: Serial.println("ETH Connected"); break; case ARDUINO_EVENT_ETH_GOT_IP: Serial.println("ETH Got IP"); Serial.println(ETH); eth_connected = true; break; case ARDUINO_EVENT_ETH_LOST_IP: Serial.println("ETH Lost IP"); eth_connected = false; break; case ARDUINO_EVENT_ETH_DISCONNECTED: Serial.println("ETH Disconnected"); eth_connected = false; break; case ARDUINO_EVENT_ETH_STOP: Serial.println("ETH Stopped"); eth_connected = false; break; default: break; } } void setup() { // Set-up serial debugger: Serial.begin(115200); // Set-up IR receiver: IrReceiver.begin(IR_RECEIVE_PIN); Serial.print(F("Ready to receive IR signals of protocols: ")); printActiveIRProtocols(&Serial); Serial.println(F("at pin " STR(IR_RECEIVE_PIN))); // Set-up ethernet: Network.onEvent(onEvent); ETH.begin(); // Build magic packet: 6 x 255, 16 x MAC address to wake: for (int i=0; i<6; i++) MagicPacket[i] = 255; for (int i=0; i<16; i++) for (int j=0; j<6; j++) MagicPacket[6 + j + (6*i)] = char((WOL_MAC>>(40-(8*j)))&255); Serial.print("Magic packet: "); for (int i=0; i<sizeof(MagicPacket); i++) Serial.print(MagicPacket[i], HEX); Serial.println(); } void loop() { if (IrReceiver.decode()) { auto tDecodedRawData = IrReceiver.decodedIRData.decodedRawData; // uint32_t on 8 and 16 bit CPUs and uint64_t on 32 and 64 bit CPUs if (IrReceiver.decodedIRData.flags & IRDATA_FLAGS_IS_REPEAT) { Serial.println(F("Repeat received.")); } else { Serial.print(F("Raw data received: 0x")); Serial.println(tDecodedRawData, HEX); } if (tDecodedRawData == 0x89D547CF) { Serial.println("Waking up remote machine"); udp.writeTo(MagicPacket, sizeof(MagicPacket), ETH.broadcastIP(), WOL_PORT); } IrReceiver.resume(); } }
Dank nogmaals aan iedereen die mee dacht en mij deze richting op stuurde!
Mooi dat je het in werking hebt gekregen, is geen makkelijk project als je aan zoiets van de grond af aan begint.
Met name dit hieronder, uit jouw link, gaat in het begin meestal wel goed bij mij:
Important notice: ESP32-POE2 has no galvanic isolation from Ethernet's power supply, this might be a problem for ground loops. This also means that when you program the board via the USB connector the Ethernet cable should be disconnected (if you have power over the Ethernet enabled)! Any board with own external power supply attached to ESP32-POE2 can be dangerous. Consider using Olimex USB-ISO to protect your computer and board from accidental short circuit (do not use external power for the USB-ISO!).
maar na een tijdje ben ik dat dan weer vergeten en flash ik zo de Usb van de laptop aan gort
Met wat rode tape probeer ik gekluns schade te voorkomen:
:no_upscale():strip_icc():strip_exif()/f/image/ic4R6dsv7WxNmJ8Axa7MDiwW.jpg?f=user_large)
.
:no_upscale():strip_icc():strip_exif()/f/image/9qsiCY8ofHKWgUsNJrt5psxI.jpg?f=user_large)
https://www.arduino.cc/en/uno-q/
datablad 37 pagina's: https://docs.arduino.cc/r...ts/ABX00162-datasheet.pdf
en niet om reclame te maken maar misschien van belang is dat die niet via Arduino maar via Digikey besteld is.
https://www.digikey.nl/en...arduino/ABX00162/27526619
Scheelt in kosten want het board is goedkoper en met gratis verzending boven de $60,- maar mogelijk dat het te lang op de plank heeft gelegen en de pre-installatie software of het image verouderd was?
Om de Q te kunnen gebruiken is er Arduino App Lab nodig en de 'normale' Arduino IDE.
https://docs.arduino.cc/software/app-lab/
Dus eenmaal App Lab geopend en board aangesloten verscheen de melding :
"Het systeem van het board is verouderd en adviseerde me om "Flasher Tool te installeren."
Op dat punt bleef App Lab steken dus er was geen andere keus als de Flasher Tool te installeren en daarmee een nieuw image op de MPU te flashen, volgens deze instructie:
https://docs.arduino.cc/tutorials/uno-q/update-image/
Vervolgens brak er een ca. 10 uur durende marathon aan met een CoPiloot die uiteindelijk tot de conclusie kwam dat er geen online Arduino Q OS beschikbaar is
Toen ik voor het eerst de gloednieuwe UNO Q met Arduino App Lab verbond, meldde de software onmiddellijk dat het systeem van de board verouderd was en adviseerde me om "Flasher Tool te halen." Ik volgde deze prompt precies zoals aangegeven. Ik downloadde de Arduino Flasher CLI van de officiële Arduino-softwarepagina en gebruikte het zoals voorgeschreven.
Het flashen is succesvol voltooid, maar het hulpmiddel installeerde een Debian 13 (trixie) basisimage in plaats van het volledige Arduino UNO Q-besturingssysteem. Na het flashen start de board normaal op, maar de volgende problemen doen zich voor:
Het systeem meldt:
PRETTY_NAME="Debian GNU/Linux 13 (trixie)"
Het qboard-subsysteem ontbreekt:
dpkg -l | grep qboard geeft geen resultaten
De qboard-pakketten zijn niet beschikbaar in de repository:
apt search qboard geeft niets terug.
Het Arduino OS-meta‑pakket (arduino-unoq-os) kan niet worden geïnstalleerd
De LED-matrix en App Lab-integratie werken niet omdat de benodigde services niet aanwezig zijn
Na het bekijken van de documentatie van de tool ontdekte ik dat de Arduino Flasher CLI Debian-images flasht, niet het volledige Arduino UNO Q OS. Dit verklaart waarom het bord op een basisniveau van Linux functioneel werd, maar alle UNO Q-specifieke services zoals qboard en matrixsupport verloor.
etc.
*****************************************************
Board werkt wel met de standaard voorbeelden. Voor mij is het vrij nieuw zo'n combinatie tussen Mcu en Mpu maar mogelijk herkent iemand dit beter met mogelijk een tip hierover.
:strip_exif()/f/image/KzNpQ0v15ZPIk47mwuL2RLCk.jpg?f=fotoalbum_large)
Arduino App Lab is designed specifically for the Arduino UNO Q board, which combines a microcontroller (MCU) and a microprocessor (MPU) running Linux. It allows you to build Apps that can include both C++ sketches for the MCU and Python scripts for the MPU, connected via the Bridge API. It also integrates Bricks — prebuilt modules such as AI models, web servers, or API connectors — that run in parallel with your Apps, often as Docker containers. App Lab supports multiple modes:
Desktop Mode (USB) for direct programming from PC.
Network Mode (Wi-Fi) for wireless development.
SBC Mode to use the UNO Q as a standalone computer.
.
[ Voor 10% gewijzigd door kitao op 25-01-2026 13:37 . Reden: link toegevoegd ]
Klinkt als niet de beste 'out of box experience'.kitao schreef op zondag 25 januari 2026 @ 12:50:
Gisteren een Uno Q 2GB uit het doosje gehaald
Wel goed dat ze naar STM gewisseld zijn, USB-C gebruiken en interessant dat ze een on-board QWIIC connector hebben.
"App lab" had ik ook nog niet gezien, die drag&drop mogelijkheid ziet er leuk uit om ook jeugd geïnteresseerd te krijgen in embedded spul.
De combinatie van MPU en MCU is interessant, maar vaak heb je maar een van beide nodig, dus denk niet dat ik snel een Q ga bestellen.
Nee niet echt maar het Q-board is momenteel voor een groot deel functioneel en zonder de specifieke testjes van de Copiloot had ik waarschijnlijk nog niet eens gemerkt dat de brug tussen MPU en MCU ontbreekt want de uitgeprobeerde standaard voorbeelden doen het tot dusver.Klinkt als niet de beste 'out of box experience'.
Hier een aantal links voor de geinteresseerde:
- https://docs.arduino.cc/tutorials/uno-q/user-manual/
- https://docs.arduino.cc/tutorials/uno-q/debian-guide/
De tweede link is een sub van de eerste.
- https://docs.arduino.cc/r.../ABX00162-full-pinout.pdf
Dit is een korte analyse van de Copiloot van het Brug probleem:
🟩 1. The MCU side is fully intact
You can upload sketches.
You can use Arduino Core.
You can control GPIO, matrix, LEDs, etc.
This part is fine.
🟧 2. The Linux side can run Python and Debian normally
You can use it as a small Linux computer.
🟥 3. The Bridge cannot be restored without the official Arduino OS image
Because:
qboard is missing
App Lab runtime is missing
arduino-router service is missing
systemd units are missing
GPIO initialization scripts are missing
MCU handshake logic is missing
Python integration is missing
The only way to restore the Bridge is to reflash the official Arduino OS image
Dat moet dan via klantenservice komen want die staat niet online volgens de AI.
en :
qboard is the Linux-side software stack that makes the UNO Q behave like an Arduino. It includes the matrix driver, App Lab runtime, RPC layer, and MCU communication services. Your board has Debian and the MCU firmware, but qboard is missing.
Dus tja, afwachten wat klantenservice naar me gaat mailen, ik heb al een auto-mail gekregen maar dat leverde geen oplossing. Toch kan ik er nu al wat mee stoeien en dit bevalt me ook wel:
You can use it as a small Linux computer.
Ik heb wel eens een Linux partitie op mijn PC gehad maar door wat geklungel ging de lap op slot en zit dat nog steeds dus dat was best een prijzig experimentje, zeker vergeleken met dit boardje.
Hier het Brug Mechanisme:
https://docs.arduino.cc/t...rocedure-call-rpc-library
/f/image/kf8CM8CjlnyXWNraCJHU0Nme.png?f=fotoalbum_large)
.
Q-board vanuit de doos aangesloten met Arduino App Lab geopend waarna dit verscheen:
"Het systeem van het board is verouderd, installeer "Flasher Tool".
Op dat punt bleef App Lab steken dus er was geen andere keus als de Flasher Tool te installeren en daarmee een nieuw image op de MPU te flashen, volgens deze instructie:
https://docs.arduino.cc/tutorials/uno-q/update-image/
en deze:
How to Reflash the Operating System to Your Arduino UNO Q
https://www.digikey.com/e...f9341633f1522f5a792eb622c
Dat flasht dan een nieuwe Debian erin maar dat is blijkbaar niet het Arduino OS image.
Na bezig te zijn geweest met Secure Shell SSH, het gaat stapje voor stapje allemaal, is er een error verdwenen.
Dit command /$ systemctl status ssh en met het Q-board in Netwerk modus had als resultaat dat de Router tussen MPU en MCU goed herkend wordt en blijft.
Maar volgens de Cop assistent is dit de huidige situatie:
:strip_exif()/f/image/aoZGHPQcYWl1nYMuFnNLFrsy.jpg?f=fotoalbum_large)
This is exactly what happens when the board is flashed with a Debian-only image instead of the full Arduino OS image.
Kern van het probleem is dus waar een Full Arduino OS image voor het Q-board 2GB te vinden en te installeren valt. Ondertussen wachtend op Klantenservice is het board goed te gebruiken want er zit een OS op maar blijkbaar niet (meer) het OS waarmee het geleverd werd of dat erin had moeten zitten.
.
[ Voor 6% gewijzigd door kitao op 27-01-2026 06:43 . Reden: link toegevoegd ]
Netjes en snel persoonlijk antwoord gekregen per email van Arduino klantenservice. Dit heeft, volgend op de eerdere aanwijzingen van de Copiloot, de laatste plooitjes glad gestreken en het Q-board is nu zoals het hoort te zijn. Er blijkt bijvoorbeeld dat na een 'power-cycle' of een sudo reboot de MCU sketch niet 'auto-runt' zolang daar geen apart knopje voor wordt omgezet, zie afbeelding rechtsboven en link daaronder.
:strip_exif()/f/image/B35SlE2Kxdz5vuYFAbsCKGfH.jpg?f=fotoalbum_large)
https://docs.arduino.cc/t...running-an-app-at-startup
De foto hieronder van het Q-board is van een matrix voorbeeld die er nu op draait volgens deze link:
https://docs.arduino.cc/t...q/user-manual/#led-matrix
:strip_exif()/f/image/dSnsClbMDnb1qXKDk7HAQMM3.jpg?f=fotoalbum_large)
Om terminal commands te geven en om de Linux files te bekijken op de MPU heb ik Visual Studio Code geinstalleerd maar er zijn daar meerdere opties voor om dat te kunnen doen.
:strip_exif()/f/image/mpStzRvwJZs8NQKfVaD0gHyE.jpg?f=fotoalbum_large)
Ik heb dus geen spijt van de aankoop en eigenlijk heeft het verouderde OS waarvan het image vervangen moest worden er indirect toe geleid om het board beter te leren kennen.
https://docs.arduino.cc/tutorials/uno-q/update-image/
Of iedere klant daar blij mee zal zijn is de vraag
.
Vandaag uitgepakt, eerste wat opviel zijn de dubbel uitgevoerde Usb-aansluitingen. Volgens co-piloot :
1. “Programming ATmega16U2” (micro‑USB)
This is the programming port.
It works exactly like the classic Arduino Uno/Mega programming interface.
The ATmega16U2 acts as a USB‑to‑serial converter.
This is the recommended port for uploading sketches, especially on first use.
It also powers the board safely.
2. “Native USB SAM3X” (micro‑USB)
This is the native USB port, wired directly to the SAM3X8E ARM chip.
Useful for:
USB HID (keyboard/mouse)
USB MIDI
High‑speed serial
Custom USB device classes
You can upload through it, but if your sketch crashes the USB stack, the port may stop responding until you reset the board.
Boardje omdraaien en dan valt er tekst te lezen welke connector wat is. Dichtst bij de Jack is de “Programming ATmega16U2”.
:strip_exif()/f/image/iWmkET7z2wCNSc4Zyx9MvQkB.jpg?f=fotoalbum_large)
https://www.theengineerin...ction-to-arduino-due.html
The Arduino Due is the first Arduino board based on a 32-bit ARM core microcontroller. With 54 digital input/output pins, 12 analog inputs, 2 DAC and 2 CAN it is the perfect board for powerful larger scale Arduino projects.
https://docs.arduino.cc/hardware/due/#tech-specs
.
Na heel veel jaren moet ik mijn oude ESP8266 code opnieuw compileren. Dat betekent nieuwe Arduino IDE gebruiken (v2.3.8) boardmanager(s) en alle libraries in nieuwe, onbekende versies opnieuw installeren. Nu loop ik vast op de esp8266 library in de gigantische keuze lijst. Dat was in de "oude" compiler ESP8266 by the ESP8266 community maar ik kan niets vinden dat daar op lijkt. En dan maar hopen dat alles compatibel is.
Weet iemand de huidige naam van de oude ESP8266 library met daarin o.a. ESP8266WiFi.h en WiFiUdp.h?
Schopje naar het Arduino topic
[ Voor 3% gewijzigd door Septillion op 12-03-2026 14:03 ]
Ik heb een vergelijkbare situatie gehad; probeerde code van een 4 jaar oud project opnieuw te compileren waarbij de libraries inmiddels niet meer compatibel met elkaar waren. Het is me, met veel frustraties, niet gelukt.DjoeC schreef op donderdag 12 maart 2026 @ 13:58:
Een vraag, niet specifiek ESPhome maar ik kan eigenlijk geen "juist" topic vinden maar hier weet vast iemand het antwoord.
Na heel veel jaren moet ik mijn oude ESP8266 code opnieuw compileren. Dat betekent nieuwe Arduino IDE gebruiken (v2.3.8) boardmanager(s) en alle libraries in nieuwe, onbekende versies opnieuw installeren. Nu loop ik vast op de esp8266 library in de gigantische keuze lijst. Dat was in de "oude" compiler ESP8266 by the ESP8266 community maar ik kan niets vinden dat daar op lijkt. En dan maar hopen dat alles compatibel is.
Weet iemand de huidige naam van de oude ESP8266 library met daarin o.a. ESP8266WiFi.h en WiFiUdp.h?
[mbr]Schopje naar het Arduino topic[/]
Uiteindelijk heb ik de ESP8266 vervangen door een ESP32, een paar libraries vervangen, en compileerde alles in 1 keer en heb ik een veel toekomstvastere situatie.
Zelf al een tijd niet meer de Arduino IDE gebruikt (ook nooit naar de v2 gewisseld) dus hoe dan de library compatibiliteit is zal sterk afhangen van wat je gebruikt. Maar kijkende naar wat ESPHome nog kan gebruiken met het ESP8266 Arduino framework zou ik zeggen dat veel nog wel moet werken.
Ik ga eens aan t klooien..... Ik heb in de esp8266 pagina blijkbaar over de link naar hier heen gelezen. Ben de laatste tijd niet altijd 100% helder....Septillion schreef op donderdag 12 maart 2026 @ 14:16:
@DjoeC Volgens mij is de ESP8266 boards package (niet library) nooit opgenomen in de standaard boards en altijd een additional gebleven. Dus gewoon, net als toen, zelf toevoegen.
Zelf al een tijd niet meer de Arduino IDE gebruikt (ook nooit naar de v2 gewisseld) dus hoe dan de library compatibiliteit is zal sterk afhangen van wat je gebruikt. Maar kijkende naar wat ESPHome nog kan gebruiken met het ESP8266 Arduino framework zou ik zeggen dat veel nog wel moet werken.
"Veel" werkt misschien nog wel, maar met de opnieuw geinstalleerde oude IDE met libraries gaat er iets fout in het discovery deel van het onewire deel: Discovery stopt na 1 device ipv dat ie ze alle 23 herkent
<aanvulling>: Compileren werkt inmiddels, de onewire functie "search" doet t niet (meer) in een loop. Is geen hardware probleem want de "reserve" ESP8266 met de oude software doet t nog wel. Dat wordt nog een "leuk" uitzoek klusje.
[ Voor 8% gewijzigd door DjoeC op 12-03-2026 15:18 ]
Ik gebruik die i.c.m. een JetKVM en dat werkt, alleen pikt de KVM-switch de scroll lock niet op waardoor ik het OSD niet kan openen (tenzij die automatisch geopend wordt na powerloss, dan is ie open en kan ik 'm bedienen) maar ook niet van input kan wisselen.
Er hangt mij iets van bij dat er Arduino's/ESP's zijn die HID ondersteunen, maar zelf heb ik daar helemaal geen ervaring mee, misschien iemand hier wel?
After the first glass you see things as you wish they were. After the second you see things as they are not. Finally you see things as they really are, and that is the most horrible thing in the world...
Oscar Wilde
Ik heb een keer wat voor mijn werk gebouwd met een Raspberry Pi Pico. Een medisch apparaat gaf een maak-contact van 100ms, maar de software op de computer had een toetsaanslag nodig om een foto op te slaan. De leverancier wilde het officiële kastje wel leveren voor E1500 (en dat voor vier opstellingen, dus keer vier), maar na een grondige risico-analyse hebben we dit zelf gebouwd voor nog geen 10% van die kosten. Werkt tot op de dag van vandaag nog betrouwbaar. De twee spares die ik ook gebouwd hebben liggen te verstoffenRaven schreef op zaterdag 11 april 2026 @ 09:22:
Heeft iemand ervaring met het gebruiken van Arduino's (al mogen ESP's ook) om toetsenbordaanslagen te emuleren?
Xtool D1 10w laser cutter - IoT moet nooit op internet - 4x HomeWizard plug-in batterij, totaal 10,8 kWh / 3200 watt / 3200 watt, aansturing met Home Assistant - Renault Twizy ± 10000 km per jaar
After the first glass you see things as you wish they were. After the second you see things as they are not. Finally you see things as they really are, and that is the most horrible thing in the world...
Oscar Wilde
Xtool D1 10w laser cutter - IoT moet nooit op internet - 4x HomeWizard plug-in batterij, totaal 10,8 kWh / 3200 watt / 3200 watt, aansturing met Home Assistant - Renault Twizy ± 10000 km per jaar
Na ruim twee maanden onderbreking de Uno Q 2GB opnieuw aangesloten en na het openen van AppLab werd er een update aangeboden: versie 0.6.0. Die geaccepteerd en vervolgens mbv de Copiloot het volgende commando gegeven: systemctl status arduino-router
De output daarvan gaf deze reactie:
🎉 Conclusion: The Bridge subsystem is now restored
Everything in your output indicates:
- The update fixed the underlying issue
- The router is healthy
- The MCU link is healthy
- The RPC layer is healthy
- The backend is talking to the router
This is the first time in the entire debugging history that all components are green.
✔️ Why “Blink LED with UI” proves Bridge is working
The fact that the LED toggles means:
✔️ Router is working
✔️ MCU firmware is responding
✔️ RPC layer is alive
✔️ Serial link is healthy
✔️ AppLab → Router → MCU communication is intact
✔️ Bridge is restored end‑to‑end
This is the strongest possible confirmation.
Boardje is dus enkel door de Uno Q een paar maanden te laten verstoffen en met een standaard AppLab update 'gerepareerd'
:strip_exif()/f/image/eIu59ej9vyOb7SVceXgg7wX9.jpg?f=fotoalbum_large)
Zie deze Github voor de releases:
https://github.com/arduino/arduino-app-lab/releases
Uno Q handleiding:
https://docs.arduino.cc/tutorials/uno-q/user-manual/
.
[ Voor 2% gewijzigd door kitao op 12-04-2026 04:40 . Reden: link toegevoegd ]
Ik heb net even de nogal grote (maar goddank per winkel gesorteerde) email-map met bestellingen doorzocht, zo te zien nooit een S2 of S3 variant van de ESP32 besteld.JeroenH schreef op zaterdag 11 april 2026 @ 11:47:
Als ik trouwens een beetje google dan lees ik dat de ESP32-S2 en ESP32-S3 ook een HID (dus toetsenbord en/of muis) moeten kunnen nadoen. Maar één van die varianten moet je maar net hebben liggen...
Inmiddels wel de Pico W gevonden, met display erop die ook nog eens 2 knopjes en een joystickje heeft. Heb ergens een sketch waarmee het display wordt aangestuurd en de knopjes en joystick-richting wordt gedetecteerd. Eens kijken of ik HID daar aan kan toevoegen... al is OTA denk ik eerst handiger, dan hoef ik die niet telkens aan de pc te hangen.
De Arduino IDE update met mDNS fix is volgens mij nog niet uit.
edit: @JeroenH Heb het al niet meer nodig
[ Voor 12% gewijzigd door Raven op 11-04-2026 19:54 ]
After the first glass you see things as you wish they were. After the second you see things as they are not. Finally you see things as they really are, and that is the most horrible thing in the world...
Oscar Wilde
:no_upscale():strip_icc():strip_exif()/f/image/AEE5e2pNhjXVtQdpJDhNJDGn.jpg?f=user_large)
Getting Started with APC220 Radio Module: Setup & Guide | DFRobot Wiki
Er wordt in het artikel beschreven dat er een driver nodig is maar bij aansluiten van de module op de laptop werd de driver meteen herkend door Windows 11.
Verder wordt erin beschreven hoe de module in te stellen maar ooit heb ik die eens eerder gebruikt en misschien dat ik dat al gedaan had want het bleek niet nodig.
Als te verzenden signaal heb ik een geluidsensor toegepast, een KY-037
:strip_exif()/f/image/mcz5BmiIJ90JkwpLGu8ceNUc.jpg?f=fotoalbum_large)
Aanvankelijk wou ik een alarm via de Usb op de computer laten afgaan als er een geluid wordt gedetecteerd maar na een aantal uren proberen is dit nog niet gelukt. Serial communication terminal programma HTerm ontving wel het signaal maar heeft zover ik gevonden heb geen trigger functie en pogingen om de Copiloot een Python programma daarvoor te laten schrijven zijn niet geheel gelukt.
Daarom de Usb converter eraf gehaald en vervolgens een Uno Transmitter naar een Uno Receiver opstelling opgebouwd dat wel goed werkt.
code transmitter
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
| #include <SoftwareSerial.h> // --- RF module on pins 10 (RX) and 11 (TX) --- SoftwareSerial RF(10, 11); // RX, TX // --- KY-037 sound sensor --- const int soundPin = 2; // KY-037 digital output (DO) // --- Onboard LED (pin 13) --- const int ledPin = LED_BUILTIN; // --- Flashing behaviour --- const unsigned long flashInterval = 100; // LED toggles every 100 ms const unsigned long alertDuration = 2000; // 2 seconds (adjust as needed) // --- Internal state --- bool alertActive = false; unsigned long alertStartTime = 0; unsigned long lastFlashTime = 0; void setup() { pinMode(soundPin, INPUT); pinMode(ledPin, OUTPUT); digitalWrite(ledPin, LOW); RF.begin(9600); } void loop() { // --- Detect gong from KY-037 --- if (!alertActive && digitalRead(soundPin) == HIGH) { alertActive = true; alertStartTime = millis(); lastFlashTime = millis(); // --- Transmit Gong! once per detection --- RF.println("Gong!"); } // --- Flash onboard LED for alertDuration --- if (alertActive) { // Toggle LED at the flash interval if (millis() - lastFlashTime >= flashInterval) { digitalWrite(ledPin, !digitalRead(ledPin)); lastFlashTime = millis(); } // Stop after alertDuration if (millis() - alertStartTime >= alertDuration) { alertActive = false; digitalWrite(ledPin, LOW); // ensure LED is off } } } |
code receiver
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
| void setup() { pinMode(LED_BUILTIN, OUTPUT); digitalWrite(LED_BUILTIN, LOW); Serial.begin(9600); // RF receiver connected to pins 0 (RX) and 1 (TX) } void loop() { static String buffer = ""; while (Serial.available() > 0) { char c = Serial.read(); if (c == '\n') { // End of line: process buffer if (buffer.indexOf("Gong") != -1) { // Flash LED a few times for (int i = 0; i < 3; i++) { digitalWrite(LED_BUILTIN, HIGH); delay(200); digitalWrite(LED_BUILTIN, LOW); delay(200); } } buffer = ""; } else if (c != '\r') { buffer += c; } } } |
De transmitter wordt getriggerd door de KY-037 dat bij geluidsdetectie z'n DO pin hoog maakt. De Uno zendt vervolgens de tekst Gong! uit en knippert z'n onboard ledje een paar keer.
De receiver ontvangt en vergelijkt de tekst met Gong en indien juist knippert die ook een paar keer zn ledje.
De APC220 gebruikt slechts vier van de 7 pinnen, namelijk Vcc, Gnd, RX en TX.
SoftwareSerial is bij de Transmitter gebruikt zodat het niet in de weg zit bij het uploaden en debuggen van de sketches. APC220 RX komt dan op pin 11 TX van de Uno.
Persoonlijk heb ik er zelf geen enkele regel aan geschreven, dat doet de AI tegenwoordig.
De APC220 blijkt niet goedkoop te zijn en er zullen best betere alternatieven zijn maar op zich is dit best een leuk project. Mogelijk met een vervolg als het gelukt is via de Usb-converter de laptop te laten flitsen.
Misschien dat iemand een idee heeft hoe dat gerealiseerd kan worden gebruik makend van de Arduino IDE Serial Monitor? Ik kreeg daar namelijk al meteen het struikelblok voor m'n voeten geworpen dat er een Poort én een Board ingesteld moeten worden. Een Poort zonder Board in de Ide instellen lukte me niet zo best
.
Het blijkt te liggen aan de Usb-adapter die bij de APC220 zit, het zwarte boardje en dat is een CP2102.
De Transmitter is hetzelfde gebleven maar de Receiver opstelling is nu deze geworden:
:strip_exif()/f/image/YFYCbMc6F01YBMobpCU31kTQ.jpg?f=fotoalbum_large)
APC220 is de antenne ontvanger die verbonden is met een FT232RL TTL USB Adapter, oftewel CP2102 is vervangen door FT232. (RX en TX kruislings en Vcc en Gnd gewoon doorverbinden)
Vervolgens met Notepad++ een Python bestandje aangemaakt:
1
2
3
4
5
6
7
8
9
10
| import serial ser = serial.Serial("COM9", 9600, timeout=1) print("Listening...") while True: data = ser.readline() if data: print("RAW:", data) |
Dan PowerShell openen en deze instructie erin plakken, die wel afhankelijk is van het path waar het staat:
& "C:\Program Files\Python313\python.exe" d:\VSCode_Python_EigenProgs\doorbell_test.py
Mijn programmaatje staat bijvoorbeeld op een externe D:\ schijf, vandaar de d:\ hierboven en Python313 staat geinstalleerd op C:\Program Files.
Van PowerShell kreeg ik deze output:
>>
Listening...
RAW: b'Gong!\r\n'
Dat werkt dus goed en de rest is enkel nog meer toeters en bellen eraan hangen zodat de laptop een alarm gaat geven zodra aan de transmissie kant de KY-037 een geluid detecteert.
De oorzaak volgens de assistent is het volgende:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
| ⭐ Why your CP2102 behaved badly Your CP2102 module was: opening the COM port but not delivering data to Python while HTerm worked fine and timing was inconsistent and newline framing was odd and Python’s readline() never triggered and raw reads still didn’t show anything. This is classic CP2102 behavior on some Windows systems. The CP2102 is known for: delayed UART startup inconsistent CR/LF timing buffer stalls Windows driver quirks “port opens but no data” bugs weird behavior when switching between HTerm and Python HTerm is extremely forgiving. Python is extremely strict. That’s why HTerm worked and Python didn’t. ⭐ Why the FT232RL is different The FT232RL is the gold standard of USB‑serial adapters. It has: ✔ rock‑solid Windows drivers ✔ perfect timing ✔ perfect CR/LF handling ✔ perfect buffering ✔ perfect compatibility with Python ✔ no startup delay ✔ no “ghost data” ✔ no dropped bytes ✔ no weird behavior when switching programs It is the most stable USB‑serial chip ever made. If Python can’t read from a CP2102, the FT232RL almost always fixes it instantly. |
Tja, dat krijg je met boardjes die van onder het stof worden gehaald
Voordeel van de APC220 is dat het een goed bereik heeft, volgens de specs althans:
Range 1200m line of sight (1200 bps)
https://wiki.dfrobot.com/tel0005#tech_specs
.
En in de Arduino IDE maakt het volgens mij geen fluit uit welk board je pakt voor serial monitor. Zolang COM port en baudrate goed staan is het go.
Je kan deze alsnog gewoon toevoegen aan je pad via "Environment Variables"Septillion schreef op maandag 11 mei 2026 @ 12:03:
@kitao Als je tijdens de install van Python het vinkje zet bij "Add to PATH" hoef je niet zo'n moeilijk commando te maken. Dan had je gewoon naar de file kunnen gaan en hem runnen.
C:\Program Files\Python313
en
C:\Program Files\Python313\Scripts
Ik heb het struikelblok wat ik tegen kwam iets uitgebreider in beeld gebracht. Onderstaande foto toont een APC220 Radio Communicatie Module gekoppeld via RX/TX aan een FT232RL USB to serial UART Interface die dan weer via de rode kabel aan de laptop vast zit.
:strip_exif()/f/image/4Mklf1iCgJ2ZmGoUfv53ORFb.jpg?f=fotoalbum_large)
Dit is de ontvangst zijde en bij mij zit die op Com9 zoals te zien op het scherm. Dat gedeelte gaat dus nog goed maar in datzelfde scherm moet er dan een board gekozen worden maar in de droplijst staan geen APC220 of None als opties vermeld.
Zover ik geprobeerd heb, gebruikmakend van de Serial Monitor in de Arduino IDE, lukte het me niet om tekst in beeld te krijgen dat vanaf de Transmitter (een APC220 aan een Uno met een geluidssensor) verzonden wordt naar de laptop ontvangst zijde. Simpelweg omdat er waarschijnlijk toch een microcontroller persé als board ingesteld moet worden om de IDE in beweging te kunnen krijgen.
Vandaar mijn vraag of dit te omzeilen is?
Wat betreft het path, daar kwam de assistent mee en heeft als voordeel dat er heel snel een PowerShell geopend kan worden en de instructieregel ...
PS C:\Users\sf490> & "C:\Program Files\Python313\python.exe" d:\VSCode_Python_EigenProgs\doorbell_alarm_edit.py
... vanuit een Notepad in de taakbalk met een Ctrl+C en een Ctrl+V meteen draait. Er hoeft dan geen Python software opgestart te worden.
[ Voor 12% gewijzigd door kitao op 11-05-2026 17:59 ]
@kitao Gewoon een Uno selecteren. Misschien dat de nieuwere iets anders dan gewoon een standaard COM-poort doen maar zolang je gewoon een simpel board selecteert die een USB-Serial chip gebruikt kan je elke USB-serial module gebruiken die je wilt.
En als je dus Python in je PATH hebt is het simpelweg d:\VSCode_Python_EigenProgs\doorbell_alarm_edit.py of als je al in de juiste map zit is doorbell_alarm_edit.py voldoende
Bedankt, het is na jouw advies inderdaad gelukt om de Arduino IDE Serial Monitor met slechts een APC220 en een FT232RL, zoals getoond in de vorige foto, om deze tekst te laten ontvangen en uit te printen:
Zoals te zien verschijnt er Gong! als tekst dus dat is gelukt. Er zit in bovenstaande opstelling geen Uno aangesloten maar Serial Monitor denkt blijkbaar van wel. Een eventuele volgende stap zou dan kunnen zijn om met de Gong! tekst en met de Serial Monitor, na activering van een sensor, om dan een alarm op de laptop af te laten gaan want dat was de hele opzet.
Vervolgens wat met het path geprobeerd en dat is inmiddels ook gelukt, een .py is nu te executen met een dubbele klik:
Wat constant vast liep was de suggestie van de Copiloot om in PowerShell de instructie 'where python' uit te voeren. Dat gaf geen enkele keer een goede uitkomst dus het werd een diep doolhof om er dan uiteindelijk achter te komen dat de instructie 'where xyz' helemaal niet bestaat op PowerShell
De assistent heeft dat als volgt samengevat:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
| . ⭐ 4. The only thing that is “broken” is where You tested: where notepad where cmd and both returned nothing. This proves: ❌ PowerShell’s where command is not functioning ✔ PATH is functioning ✔ Python is functioning ✔ Your system is functioning where is a cmd.exe tool, not a PowerShell tool. On some systems, PowerShell fails to pass PATH correctly to it. This is cosmetic — not functional. You never need where for real work. ⭐ 5. Your system is now in perfect working order Let’s summarize what you have achieved: ✔ Python runs from any folder ✔ Python is correctly installed ✔ PATH is correctly configured ✔ The Python launcher works . |
En ja, het klopt, ik ben nog niet lang geleden pas begonnen met Python maar daarbij opgemerkt dat ik geen enkele programmeertaal probeer te leren. Er zijn namelijk een aantal verschillende boardjes waar ik wat mee bezig ben en dan kom je talen tegen zoals C, Cpp voor Arduino, Vhdl, Verilog, Assembly, PBasic, Linux, TCL en dan nog wat Siemens Logo! en nu dus Python en dat zijn er gewoon teveel om die te leren.
Ik probeer het wel een beetje te kunnen lezen en te begrijpen maar zelf proberen te schrijven begin ik niet meer aan. En in feite is dat ook niet meer nodig want net als een rekenmachine voor mathematica heb je nu een AI voor het programmeren.
Het instellen van een path heeft op zich niet veel met programmeren te maken maar meer met computer systeem instellingen. Dat probeer ik dan wel een beetje te oefenen maar alleen als ik het tegenkom, wat nu dus het geval was en gelukkig is dat dan toch nog goed gekomen. Tnx!
.
BedanktRuitenwisser schreef op maandag 11 mei 2026 @ 14:04:
Je kan deze alsnog gewoon toevoegen aan je pad via "Environment Variables"
C:\Program Files\Python313
en
C:\Program Files\Python313\Scripts
:no_upscale():strip_icc():strip_exif()/f/image/iUK9AXC9h4gKfynK18uBH1LX.jpg?f=user_large)
Daarna is het ook nog eens aan de User Variables toegevoegd.
Ook dat lukt me echt niet zonder assistent, zit namelijk diep verborgen:
Win+I > System > About > Advanced System Settings > Environment Variables > User Variables > Path > Edit > New > Move Up.
.
@Septillion schreef:
"Als je tijdens de install van Python het vinkje zet bij "Add to PATH" "
Dat is volgens mij ook gedaan bij de installatie van Python313. Tijdens het probleem oplossen kwam ook naar voren dat Windows terug bleef vallen op het path naar de voorheen geinstalleerde Python App maar het voert te ver om die hele copiloot conversatie nog een keer uit te gaan spitten. Bij een eventuele volgende software installatie zal ik er wat meer op letten hoe dat uitpakt, tnx.
Ps3:
Het lijkt erop dat een alarm triggeren met alleen de Arduino IDE niet uitgevoerd kan worden:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
| . ⭐ The Arduino IDE Serial Monitor cannot trigger a sound on your laptop Not on its own. Not with a setting. Not with a hidden option. Not with a plugin. It is only: a text viewer a simple serial terminal no scripting no automation no event hooks no sound output no “on message received” actions So even if it shows: Gong! Gong! …it cannot react to it. This is a hard limitation of the Arduino IDE. . |
[ Voor 40% gewijzigd door kitao op 12-05-2026 11:29 . Reden: Ps3 ]
Qua serial monitor, het board type is bij de meeste absoluut niet van belang. Zolang het bord gewoon als COM-poort in Windows staat maakt het geen fluit uit welke je kiest.
Maar inderdaad, serial monitor is maar een simpele applicatie.
Achteraf gezien vraag ik me nu af waarom ik niet zelf even geprobeerd heb om een 'fop-dummy'-board in te stellen maar goed, het einddoel is met toepassing van Python wel bereikt namelijk dat bij activering van een sensor het signaal daarvan via RF op mijn laptop binnenkomt en een alarm activeert. Volgens de Fun met Electronica leverancier is het bereik maar liefst een kilometer.
418MHz to 455MHz
Zendbereik 1000 meter, open veld, bij 2400bps
Output power 20 mW
https://shop.funmetelectr...nten/apc220-radio-module/
Er staat niet bij welke chip er op het Usb-boardje zit, mogelijk is dat ook weer een CP2102 maar zoals eerder beschreven is Python daar niet blij mee en kan m.i. beter een FT232RL worden gebruikt.
.
System variabelen is voor heel je systeem en user variabelen enkel voor je huidige user. Als je het aan de system variabelen hebt toegevoegd, zou je dit in principe niet meer moeten toevoegen aan je user variabelen.kitao schreef op dinsdag 12 mei 2026 @ 10:05:
[...]
Bedanktdat maakte inderdaad ook deel uit van de oplossing:
[Afbeelding]
Daarna is het ook nog eens aan de User Variables toegevoegd.
Ook dat lukt me echt niet zonder assistent, zit namelijk diep verborgen:
Win+I > System > About > Advanced System Settings > Environment Variables > User Variables > Path > Edit > New > Move Up.
Bij mij komen beide opties te voorschijn bij het zoeken na de Win toets te hebben ingedrukt.
Naar mijn gevoel moet je als beginner niet te veel klooien met Python versies. De 3.14 heeft niets noemenswaardig meer dan 3.13 en eenmaal dat je daar tegenaan gaat lopen zal je toch al bezig zijn met virtuele omgevingen.
Bedankt voor de tip nogmaals
Wat het installeren en instellen betreft dat doe ik het liefst op de automaat natuurlijk maar er komen momenten dat er handmatig bijgestuurd moet worden of dat nu bij Python, Quartus of Libero of etc. is, soms ontkom je daar gewoon niet aan.
Natuurlijk is er dan de keus om ervan af te blijven want 'ik weet niet precies wat er gaat gebeuren als ik dit knopje indruk' maar dat betekent dan ook vaak dat het gewenste dan niet gaat draaien.
En eigenlijk heb ik wel lastigere installaties doorlopen als bovenstaande, bijvoorbeeld het installeren van een driver voor een Usb-blaster op Windows11.
Toch begrijp ik je advies wel, bijvoorbeeld toen ik dit als suggestie voorgelegd kreeg:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
| Fix A — Remove WindowsApps from your User PATH This is safe. You don’t need WindowsApps for anything unless you use Microsoft Store apps from the command line. Steps: Open Environment Variables Under User variables for sf490 Select Path Click Edit Remove this entry: %USERPROFILE%\AppData\Local\Microsoft\WindowsApps Click OK Restart PowerShell Then: where python will finally show: C:\Program Files\Python313\python.exe |
Gaat het fout dan ben je wel veel tijd kwijt aan het herstellen maar is er toch iets van geleerd.
Minder leuk is als je hele laptop niet meer wil opstarten en onbruikbaar wordt, dat heb ik ook wel eens gehad na een partitie opdeling dus zonder risico is het inderdaad niet.
.
[ Voor 43% gewijzigd door kitao op 12-05-2026 14:53 ]
Ik wil wel eens weten wat je hem gevraagd had voor die fix te krijgen.kitao schreef op dinsdag 12 mei 2026 @ 14:33:
Toch begrijp ik je advies wel, bijvoorbeeld toen ik dit als suggestie voorgelegd kreeg:XML:Dat ging me iets te ver, een heel path afbreken en dan mogelijk erachter komen dat dan andere software pakketten niet meer openen. Dus ja, het gaat ook een beetje op gevoel en soms met geluk.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 Fix A — Remove WindowsApps from your User PATH This is safe. You don’t need WindowsApps for anything unless you use Microsoft Store apps from the command line. Steps: Open Environment Variables Under User variables for sf490 Select Path Click Edit Remove this entry: %USERPROFILE%\AppData\Local\Microsoft\WindowsApps Click OK Restart PowerShell Then: where python will finally show: C:\Program Files\Python313\python.exe
Gaat het fout dan ben je wel veel tijd kwijt aan het herstellen maar is er toch iets van geleerd.
Minder leuk is als je hele laptop niet meer wil opstarten en onbruikbaar wordt, dat heb ik ook wel eens gehad na een partitie opdeling dus zonder risico is het inderdaad niet.
Windows bekijkt je PATH variable in volgorde. Dus als je een exe wilt starten, gaat ie eerst in de eerste directory kijken, daarna de volgende enzovoort tot ie het gevonden heeft. Door je python pad naar boven te verplaatsen kan je maken dat ie python.exe altijd in die ene directory gebruikt.
Ik heb dat nog eens nagevraagd want de assistent was degeen die zulke ingrepen voorstelde bij het proberen de 'where python' commando in werking te krijgen. Terwijl PowerShell dat commando dus helemaal niet kent dus dat was een mooie kluit in het riet.Ruitenwisser schreef op dinsdag 12 mei 2026 @ 14:20:
System variabelen is voor heel je systeem en user variabelen enkel voor je huidige user. Als je het aan de system variabelen hebt toegevoegd, zou je dit in principe niet meer moeten toevoegen aan je user variabelen.
.
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
| . ⭐ Why some people say “put it in only one” This advice comes from Unix/Linux culture, where: PATH order matters more duplicate entries can cause confusion different users have different environments On Windows, the rules are different: ✔ User PATH overrides System PATH ✔ But duplicates do not break anything ✔ Windows merges both lists internally ✔ The first matching executable wins So having Python in both lists is not wrong. ⭐ The only time duplicates cause trouble Duplicates only matter if ... one entry points to Python 3.13 the other points to Python 3.11 or 3.9 ... and Windows picks the wrong one But in your case: ✔ Both entries point to the same folder So there is no risk. . |
Ik heb het dus zo laten staan en niet meer veranderd, ook omdat deze laptop maar 1 gebruiker heeft.
Om een beetje bij het topic te blijven, hier een leuk projectje met een CPLD MaxII en een Due, beiden op 3.3V nivo. De sketch is op maat gegenereerd door de assistent.
.
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
| /* * * 13-05-26 * * MAX II → Arduino Due → 7‑segment display * Pins: * D2 = bit0 (LSB) * D3 = bit1 * D4 = bit2 * D5 = bit3 (MSB) * * D13 = clock output (0.25 Hz) * * D6..D12 = segments a..g (common cathode, HIGH = ON) */ const uint8_t bitPins[4] = {2, 3, 4, 5}; // LSB → MSB const uint8_t segPins[7] = {6, 7, 8, 9, 10, 11, 12}; // a..g // Hexadecimal lookup table for common‑cathode 7‑segment // bit0=a ... bit6=g const uint8_t hexTo7Seg[16] = { 0b00111111, // 0 0b00000110, // 1 0b01011011, // 2 0b01001111, // 3 0b01100110, // 4 0b01101101, // 5 0b01111101, // 6 0b00000111, // 7 0b01111111, // 8 0b01101111, // 9 0b01110111, // A 0b01111100, // b 0b00111001, // C 0b01011110, // d 0b01111001, // E 0b01110001 // F }; void setup() { // Input pins from MAX II for (int i = 0; i < 4; i++) { pinMode(bitPins[i], INPUT); } // Output pins to 7‑segment for (int i = 0; i < 7; i++) { pinMode(segPins[i], OUTPUT); digitalWrite(segPins[i], LOW); } // Clock output pinMode(13, OUTPUT); digitalWrite(13, LOW); } void loop() { // --- Generate 0.25 Hz clock on pin 13 --- digitalWrite(13, HIGH); delay(2000); // 2 seconds high digitalWrite(13, LOW); delay(2000); // 2 seconds low // --- Read 4‑bit value from MAX II --- uint8_t value = 0; for (int i = 0; i < 4; i++) { value |= (digitalRead(bitPins[i]) << i); } // --- Convert to 7‑segment pattern --- uint8_t pattern = hexTo7Seg[value & 0x0F]; // --- Output to 7‑segment display --- for (int i = 0; i < 7; i++) { bool on = pattern & (1 << i); digitalWrite(segPins[i], on ? HIGH : LOW); } } |
De Due stuurt een kloksignaal naar de Max, die zet dat om naar een 4-bit counter dat via 4 Ledjes afgetakt wordt naar de Due die in feite een CD4511 vervangt en dat omzet naar een Hex 7-segment.
Hier een voorbeeld van een CD4511 circuit maar dat IC heb ik niet vandaar de Due software versie er van laten maken:
:strip_exif()/f/image/xzlFgul3WX3rKIKONM0B1dT7.jpg?f=fotoalbum_large)
MaxII RTL Viewer, dat geeft schematisch de 'fabric' weer die met Quartus erin geflasht is:
:strip_exif()/f/image/t5GLNSLyoyQrkZF9n3dfMQaV.jpg?f=fotoalbum_large)
Hardware opstelling:
:strip_exif()/f/image/fZ71CgKT4DRicGCaT9GiJH90.jpg?f=fotoalbum_large)
Bron met video, schema en code voor een CPLD :
http://www.pyroelectro.com/edu/fpga/parallel_hardware/
Zo'n assistent geeft dus aardig wat voordelen, waar ik een paar jaar geleden als niet-programmeur afhankelijk was van kant en klare internet voorbeeld codes kun je die nu gewoon op maat laten genereren.
.
.
1
2
3
4
5
6
7
8
9
10
11
12
13
14
| 🛑 Why it suddenly works Your board was never defective. The BLE stack was never broken. Windows was never the real problem. The entire issue was caused by this single line: while (!Serial) {} That line blocks the sketch forever when USB is not connected. So BLE never started. PDM never started. Your sketch never ran. Once removed, the board behaves like a proper wireless device. |
De storing zat dus in de 'single line' die die zelf had geschreven
In de sketch hieronder is het uiteindelijk hersteld, zie setup() regel 31.
.
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
| #include <PDM.h> #include <ArduinoBLE.h> #define LED_PIN LED_BUILTIN // Custom UUIDs (Windows-safe) BLEService gongService("12345678-1234-5678-1234-56789abcdef0"); BLEByteCharacteristic gongChar( "12345678-1234-5678-1234-56789abcdef1", BLERead | BLENotify ); // Microphone buffer volatile int16_t sampleBuffer[256]; volatile int samplesRead = 0; // PDM callback void onPDMdata() { int bytesAvailable = PDM.available(); PDM.read((int16_t *)sampleBuffer, bytesAvailable); samplesRead = bytesAvailable / 2; } void setup() { delay(1000); pinMode(LED_PIN, OUTPUT); digitalWrite(LED_PIN, LOW); Serial.begin(115200); // while (!Serial) {} delay(200); Serial.println("Starting BLE Doorbell Transmitter…"); // --- BLE SETUP --- if (!BLE.begin()) { Serial.println("BLE start failed!"); while (1); } BLE.setLocalName("NanoDoorbell"); BLE.setAdvertisedService(gongService); gongService.addCharacteristic(gongChar); BLE.addService(gongService); gongChar.writeValue((byte)0); BLE.advertise(); Serial.println("BLE advertising…"); // --- MIC SETUP --- PDM.onReceive(onPDMdata); PDM.setGain(30); if (!PDM.begin(1, 16000)) { Serial.println("Failed to start PDM!"); while (1); } } void loop() { BLEDevice central = BLE.central(); // Always read microphone data if (samplesRead > 0) { long sum = 0; for (int i = 0; i < samplesRead; i++) { int16_t s = sampleBuffer[i]; sum += (long)s * s; } float rms = sqrt((float)sum / samplesRead); samplesRead = 0; Serial.println(rms); // LED + BLE logic if (rms > 300) { digitalWrite(LED_PIN, HIGH); if (central && central.connected()) { gongChar.writeValue((byte)1); } } else { digitalWrite(LED_PIN, LOW); if (central && central.connected()) { gongChar.writeValue((byte)0); } } } // Keep BLE alive BLE.poll(); } |
Net als bij de Uno-APC220 opstelling moet er dan nog een .py bijgemaakt worden en kan de Nano33 draadloos als Gong-detector worden ingezet.
.
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
| import asyncio from bleak import BleakClient, BleakScanner import winsound SERVICE_UUID = "12345678-1234-5678-1234-56789abcdef0" CHAR_UUID = "12345678-1234-5678-1234-56789abcdef1" # This MUST be at the top level, not inside any function last_value = 0 async def run(): print("Scanning for NanoDoorbell…") device = await BleakScanner.find_device_by_filter( lambda d, ad: d.name and "NanoDoorbell" in d.name ) if not device: print("NanoDoorbell not found") return print(f"Found device: {device.address}") async with BleakClient(device) as client: print("Connected. Waiting for notifications…") def callback(sender, data): global last_value value = int(data[0]) # Trigger only on 0 → 1 transition if last_value == 0 and value == 1: print("🔔 GONG DETECTED!") winsound.Beep(2000, 200) winsound.Beep(1500, 200) winsound.Beep(1000, 200) last_value = value await client.start_notify(CHAR_UUID, callback) while True: await asyncio.sleep(1) asyncio.run(run()) |
:strip_exif()/f/image/8CFESMIW1ZyP24Yb9CgAFBTg.jpg?f=fotoalbum_large)
:strip_exif()/f/image/Xk4hIYTVYLgdEc8fUlTz8Hz3.jpg?f=fotoalbum_large)
.
Na een tijdje ermee aan het orienteren te zijn blijkt dat het niet aansluit op de Arduino IoT Cloud:
Nano 33 BLE Sense Rev2 is not supported by Arduino Cloud, and the Cloud Agent is correctly rejecting it.
Het gaat dan over de IoT Cloud, niet over de Cloud Editor (IDE):
Feature
Supported on Nano 33 BLE Sense Rev2?
Cloud Editor (Web Editor)
✔ Yes
Arduino IoT Cloud
❌ No
-------------------------------------------------------------
Dat niet alleen, er is ook een MicroPython online IDE waar dat board ook niet op aansluit:
⭐ 1. The Nano 33 BLE Sense Rev2 does not work with the online MicroPython IDE
For the Nano 33 BLE Sense Rev2, you must use the desktop MicroPython editor
In beide gevallen wordt er geinformeerd dat de Nano ESP32 daar wel op aansluit.
Op het eerste gezicht is dat boardje vrijwel identiek:
https://docs.arduino.cc/hardware/nano-esp32/
:no_upscale():strip_icc():strip_exif()/f/image/sBS3C2lzFWCXFy3SBo6L7wwd.jpg?f=user_large)
Arduino Nano ESP32 | IoT & MicroPython Board
https://www.dfrobot.com/product-2723.html
Toch handig om te weten voordat je zoiets bestelt
**********************************************************************************************************
PS,
Wat niet vermeld staat is dat (bij mij althans) de MicroPython Firmware en soort van image op je board zet die de originele Bootloader uitwist !!
Ik heb een stuk of vijf methoden opgesomd zien worden door de assistent maar geen enkele bood herstel. Uiteindelijk zelf maar wat geprobeerd, namelijk binnen de normale Arduino IDE 2.3.8 het Blink Example pakken en Upload klikken. Vervolgens gaat die dan eerst compileren en op moment dat dit klaar is vlak voor of tegelijk met de Upload Cyclus de onboard Reset knop dubbel klikken.
⭐ Why Arduino doesn’t document this
Because the Nano 33 BLE family has a fragile bootloader, and the docs are… optimistic.
MicroPython overwrites the Arduino runtime, and the IDE uploader is extremely picky about timing.
.
[ Voor 29% gewijzigd door kitao op 20-05-2026 17:20 ]