sc7-testo-firmware/README.md

86 lines
3.2 KiB
Markdown

## TESO-O Fun Robot at Hackaday Supercon 2023
Firmware for TEST-O: The Continuity and Diode Test Funbot
This is a PlatformIO-compatible project.
 
**BE AWARE:**
On REV1 boards, the right potentiometer only works for the first half of its rotation. Turning the right pot beyond half way will not cause damage, but will consume extra current (up to ~3-5mA) and will flash the eyes red an error indicator while in RGB fun mode.
To work around this, use the right pot within the first half of its rotation.
 
## What can you do with it?
The TEST-O Robot is:
- A continuity meter
- Set the switch to the left position.
- Use the provided probes to check continuity.
- The left eye will show continuity status.
- Continuity is indicated if a resistance of ~100ohms or less is detected.
- Turn the buzzer on or off using the button while in this mode.
- Testing voltage is ~1.2V and limited to ~2mA.
- A diode test meter
- Set the switch to the right position.
- Use the provided probes on the diode.
- The right eye will show diode test status.
- Status is updated if the diode conducts (positive on anode, negative on cathode).
- Shorts are shown with a different eye LED color.
- LEDs can be tested, though not all will light or indicate on the right eye.
- Testing voltage is ~3.1V and limited to ~2mA.
- An RGB light show with long dangly probe arms
- Up to you if you want to short things out with dangly probes
- 7 configurable RGB programs available
- Turn the potentiometers to set program parameters
- There is an empty RGB LED program slot available for hackers to add one
## Specifications
- PUYA PY32F003W16S6 MCU
- ARM Cortex-M0+ core running at 8MHz
- 32K Flash / 4K RAM
- 2x RGBLED for indicators or fun mode
- Low-power piezo buzzer for continuity test
- Built-in continuity cheeks and LED test antenna
- Pots to set things just how you want them
- Works as an addon, or standalone with a CR2032
## Misc Notes:
- This device is using PUYA PY32F003 MCU. This is a CM0+ MCU
that is intended for the China domestic market. This MCU,
as well as other PY32F002A/003/030 cores with at least 32K
flash, internally uses the same core as PY32F030F6P6.
- To activate the bootloader, press and hold the button while
powering on while the left knob is turned between halfway to
full clockwise. The bootloader will now communicate on the UART pins
of the addon header at 115200-8-N-1 and wait for XMODEM data.
- To use a debugger, connect using the UART pins on the addon header.
The normal firwmare does not use UART and leaves the pins configured
as SWD for the user. Use a DAPLink compatible debugger. If you don't
have one, there are many projects to convert existing devboards to DAPLink.
- There is no official OpenOCD support for this MCU. Adding the PUYA MCU
to pyOCD is trivial, so this project uses pyOCD. Using OpenOCD, J-Link,
or anything other than the DAPLink compatible debugger with pyOCD
is untested and left as an exercise to the programmer.
## Credits
Original idea by rCON. Idea tweaked and implemented by true.
Art modified by rCON and further modified by true.
Schematic, board layout, code, and assembly by true.